`

MySQL之SQL优化(三)

阅读更多

事务

 

1. 自动提交

对于事务类型的库表

> show variables like 'AUTOCOMMIT';

> set AUTOCOMMIT=1;

 

2. 通过修改配置文件来设置整个数据库的隔离级别,也可以通过以下语句只改变当前会话的隔离级别

> SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITED;

MySQL可识别4个ANSI定义的隔离级别,InnoDB引擎支持这个四个隔离级别。

 

3. 隐式锁定和显式锁定

a) InnoDB采用两阶段锁定协议(two-phase locking protocol),事务执行过程中随时可执行锁定,锁定后,

执行commit或rollback时该事务中的所有锁同时被释放。

InnoDB会根据隔离级别在需要的时候自动加锁(隐式锁定)。

b) InnoDB的显式锁定语句:

select ... lock in share mode;

select ... for update;

c)MySQL也支持Lock Tables和Unlock Tables语句,这是在服务层实现的,与存储引擎无关。 

 

* 在MySQL中无论使用什么存储引擎,除了事务中禁用了AutoCommit时可以使用Lock Tables外,其他时候不要显式的执行Lock Tables语句

 

4. 多版本并发控制(MVCC)

mysql> show table status like 'album'\G

*************************** 1. row *************

Name: album //表名

Engine: InnoDB //表的存储引擎名

Version: 10 

Row_format: Compact //行的格式,对MyISAM表,可选值为Dynamic,Fixed或Compressed; Dynamic的行长度可变,一般包含可变长的字段,如varchar或blob。Fixed的行长度是固定的,只包含固定长度的列,如Char和Integer。Compressed的行只在压缩表中存在。

Rows: 541815 //表中的行数,对于MyISAM和其他一些引擎为精确值。对于InnoDB,该值是估值

Avg_row_length: 64 //平均每行包含的字节数

Data_length: 35192832 //表数据的大小,以字节为单位

Max_data_length: 0 //表数据的最大容量,该值和存储引擎有关

Index_length: 0 //索引大小,该值与存储引擎有关

Data_free: 7340032 //对于MyISAM表,表示已分配但目前没有使用的空间,该部分空间包含以前删除的行,以及后续可以被insert利用到的空间

Auto_increment: NULL //下一个auto_increment的值

Create_time: 2015-01-20 16:37:58 //表创建的时间

Update_time: NULL //表数据的最后修改时间

Check_time: NULL //使用check table命令或者myisamchk工具最后一次检查表的时间

Collation: latin1_swedish_ci //表的默认字符集和字符列排序规则

Checksum: NULL //如果启用,保存的是整个表的实时校验和

Create_options: //创建表时指定的其他选项

Comment: //其他额外信息,对于MyISAM表,保存的是表在创建时带的注释。对于InnoDB,则保存的是InnoDB表空间的剩余空间信息。如果是视图,则包含“View”的文本字样

1 row in set (0.44 sec)

 

5. InnoDB存储引擎

 InnoDB是MySQL的默认事务引擎,使用很广泛,用来处理大量的短(short-lived)事务

 

6. MyISAM存储引擎

不支持事务,行级锁和崩溃后的安全恢复

对于只读,可忍受修复操作的表,可使用MyISAM

 

7. MyISAM压缩表

如果表在创建并导入数据后,不会再进行修改操作,则该表适合使用MyISAM压缩表;

使用myisampack对MyISAM表进行压缩(也可称之为打包),压缩操作可以极大的减少磁盘空间占用,因此也可以减少磁盘I/O,从而提供性能,压缩表也支持索引,但索引也是只读的

 

分享到:
评论

相关推荐

    mysql数据库sql优化

    ### MySQL数据库SQL优化 #### 一、SQL优化 在MySQL数据库管理中,SQL查询的性能直接影响到系统的响应时间和资源消耗。通过合理的SQL优化,可以显著提高数据处理速度,降低服务器负载,提升用户体验。 ##### 1.1 ...

    Effective MySQL之SQL语句最优化.pdf

    尽管如此,我将基于标题和描述中提供的关键词“Effective MySQL之SQL语句最优化”来构建知识点。 1. SQL语句最优化的概念:在数据库管理中,对SQL语句进行优化是提高数据库性能的关键环节。最优化的SQL语句能够在...

    mysql的sql优化

    MySQL的SQL优化是数据库管理中的重要环节,尤其对于有经验的开发者来说,了解并掌握这一技能可以显著提升数据库性能,减少资源消耗。SQL优化主要涉及查询效率、索引使用、查询语句结构优化等多个方面。 首先,理解...

    大道相通,得鱼忘筌 - 从Oracle的SQL优化到MySQL的SQL优化.pdf

    接下来,我们将探讨Oracle和MySQL在SQL优化方面的共性和差异性,以及这些知识如何帮助数据库管理员(DBA)在不同环境中实施有效的SQL优化。 首先,我们要明确两个数据库系统的基本架构。Oracle数据库是一个功能强大...

    Effective MySQL之SQL语句最优化(高清)

    《Effective MySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助读者分析和调优有问题的SQL语句。 内容简介  《Effective MySQL之SQL语句最优化》主要内容:  ●找出收集和诊断问题必备的分析...

    MySQL数据库优化SQL篇PPT课件.pptx

    本PPT课件主要讲述了MySQL数据库优化的重要知识点,特别是SQL优化方面的内容。从执行计划、SELECT语句、IN和EXIST语句、LIMIT语句、RAND函数、Order by、Group by、Distinct和Count等方面对MySQL数据库优化进行了...

    《Effective MySQL之SQL语句最优化》手册

    总的来说,《Effective MySQL之SQL语句最优化》旨在帮助读者掌握一系列实战性的SQL优化技巧,无论是在数据库设计、开发还是运维阶段,都能为提升数据库系统的整体性能提供有力支持。通过阅读本书,你将能够更有效地...

    《Effective MySQL之SQL语句最优化》数据库SQL

    综上所述,《Effective MySQL之SQL语句最优化》涵盖了SQL优化的各个方面,从基础的索引使用到高级的查询优化技巧,再到数据库设计和参数调整,都是提升数据库性能的重要知识点。通过学习和实践,我们可以有效地优化...

    MySQL性能优化 SQL优化方法技巧

    ### MySQL性能优化与SQL优化方法技巧 #### 一、引言 MySQL作为一款广泛使用的开源关系型数据库管理系统,其性能优化对于确保应用系统的稳定性和高效运行至关重要。通过对MySQL的优化,不仅能提升系统的响应速度,还...

    Effective MySQL之SQL语句最优化

    "Effective MySQL之SQL语句最优化"这本书深入探讨了如何通过优化SQL查询来提高MySQL数据库的效率。以下是基于这个主题的一些关键知识点: 1. **索引优化**:索引是数据库性能提升的核心。书中的内容可能涵盖如何...

    MySQL技术内幕 SQL编程及优化.pdf

    2. SQL优化 2.1优化SQL的一般步骤 2.2 索引问题. 2.3两个常用的优化技巧 2.4常用SQL优化 2.5常用SQL技巧 3.优化数据库对象 3.1优化表的数据类型逆规范化 3.2提高查询速度 4.锁问题 4.1MyISQM表锁 4.2...

    传智播客mysql的sql优化

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,SQL优化是提高数据库性能的关键步骤,尤其对于有大量数据和高并发访问的应用来说更是如此。传智播客的MySQL SQL优化课程针对已有数据库开发经验的开发者,旨在...

    sql查询优化(提高MySQL数据库查询效率的几个技巧)

    SQL 查询优化(提高 MySQL 数据库查询效率的几个技巧) 在 MySQL 数据库中,查询优化是一个非常重要的方面。在实际应用中,高效的查询可以提高整个系统的性能和响应速度。下面我们将介绍几个提高 MySQL 数据库查询...

    mysql优化sql语句的优化(索引,常用小技巧.)

    ### MySQL优化之SQL语句与索引优化 #### 数据库设计合理性 在MySQL数据库的优化过程中,合理设计数据库(表)至关重要。一个合理的数据库设计能够有效地提高查询性能、减少数据冗余并确保数据完整性。 - **3NF**...

    mysql优化-sql高级

    mysql优化从以下几个方面介绍 mysql的架构 索引优化分析 查询截取分析 mysql锁机制 主从复制

    《Effective MySQL之SQL语句最优化》PDF

    《EffectiveMySQL之SQL语句最优化》提供了很多可以用于改进数据库和应用程序性能的最佳实践技巧,...《EffectiveMySQL之SQL语句最优化》希望能够通过一步步详细介绍SQL优化的方法,帮助读者分析和调优有问题的SQL语句。

    mysql-sql优化-小米开源-soar

    MySQL SQL优化是数据库管理中的关键环节,特别是在大数据量和高并发的业务场景下,SQL的高效执行直接影响到系统的性能和响应速度。小米开源的SOAR(SQL Optimizer And Rewriter)是一个专门针对MySQL数据库的SQL优化...

    基于mysql的sql常规优化

    sql常用优化手段

    MYSQL.rar_MYSQL_mysql 优化_mysql优化_mysql备份_sql优化

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理各种类型的数据。为了确保数据库高效运行,需要进行一系列的优化操作,包括结构优化、查询优化、配置优化和硬件优化。本资料包“MYSQL.rar”提供了...

    MySQL架构执行与SQL性能优化 MySQL高并发详解 MySQL数据库优化训练营四期课程

    MySQL架构执行与SQL性能优化-MySQL高并发详解课程,课程的目标简单明确,核心就是MySQL的性能优化与高并发。课程内容进行了精华的浓缩,有四大内容主旨,MySQL架构与执行流程,MySQL索引原理详解,MySQL事务原理与...

Global site tag (gtag.js) - Google Analytics