MySQL性能优化三之索引的优化

原创 2016年08月29日 10:49:22

1.索引的概念和建立

1.1.概念:对数据库里面的值进行排序的一种结构。在一张表中为一个字段创建一个索引,将创建另外一个数据结构,包含字段数值以及指向相关记录的指针,然后对这个索引结构进行排序,允许在该数据上进行二分法排序。

1.2.普通索引:ALTER TABLE table_name ADD INDEX index_name ON (column(length))
1.3.唯一索引:ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
1.4.组合索引:ALTER TABLE table_name ADD INDEX indexName(column(length),column1(length),...)

1.5.主键索引:唯一索引的一种特殊形式,不允许为Null,可以被其他表引用为外键,只能有一个。

1.6.外键索引:如果为某个外键字段定义了一个外键约束条件,MySQL就会定义一个内部索引来帮助自己以最有效率的方式去管理和使用外键约束条件。

2.如何选择合适的列建立索引

2.1.where从句、group by从句、order by从句、on从句中出现的列。

2.2.索引字段越小越好(数据库的数据存储以页为单位一页存储的数据越多一次IO操作获取的数据越大效率越高)。

2.3.离散大(变量各个取值之间的差异程度)的列放到联合索引的前面,可以通过count()函数查看字段的差异值,返回值越大说明字段的唯一值越多字段的离散程度高。

2.4.尽量避免NULL:应该指定列为NOT NULL,除非你想存储NULL。在MySQL中,含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。

3.索引优化SQL的方法

3.1.盲目增加索引过多会影响查询和写入的效率。

3.2.重复的索引:相同的列以相同的顺序建立同类型的索引(比如在主键字段上面再增加唯一性索引)。

3.3.冗余索引:多个索引的前缀列相同,或者在联合索引中包含主键索引(因为INnoDB会在每个索引的后面附加主键信息)。

3.4.使用pt-dupicate-key-checker工具检查重复索引和冗余索引(pt-dupicate-key-checker -uroot -p123456 -h127.0.1

4.索引维护的方法

4.1.对不使用的索引进行删除

4.2.对不使用的索引进行统计分析例如:



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MySQL基础一之初涉MySQL上

1.mysql的概述 1.1.开源的关系型数据库系统 2.mysql5.5的安装 2.1.MSI安装(常用)、ZIP安装(较难) 1)欢迎安装界面,直接点next。   2)同意许可协议   3)安装...

MySQL基础二之数据类型与创建数据表

1.数据类型: 1.1.整型(根据取值的范围分为5种) 1)TINYINT:有符号(-128~127);无符号(0~255) 2)SMALLINT:有符号(-32768~32767);无符号(0~65...

MySQL性能优化一之优化的目的和方面

1.正确使用SQL语句的原因 1.1.增加数据库处理的效率,减少应用相应的时间 1.2.减少数据库服务器的负载,增加服务器的稳定性 1.3.减少服务器间通信的网络流量 2.数据库优化的目的 2.1.避...

MySQL性能优化四之数据库结构优化

1.选择合适数据类型 1.1.使用可以存储你数据类型的最小数据类型。 1.2.使用简单的数据类型。 1.3.尽量使用NOT NULL定义字段。 1.4.尽量少用大的类型(text),非用不可使...

MySQL性能优化二之SQL的优化

1.怎么发现有问题的SQL?(通过MySQL慢查询日志对有效率问题的SQL进行监控) 1.1.查看慢查询的开启状态:show variables like ‘slow_query_log’ 1.2.设...

MySQL基础一之初涉MySQL下

1.MySQL文件目录结构 1.1.bin:存储可执行的文件 1.2.data:存储数据文件 1.3.docs:文档 1.4.include:存储包含的头文件 1.5.lib:存储库文件 1.6.sh...

关于数据库主键和外键(终于弄懂啦)

一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  ...

MySQL性能优化五之系统配置优化和服务器硬件优化

1.数据库系统配置优化 1.1.MySQL服务器上关闭iptables、selinux等防火墙软件 2.MySQL配置文件优化 2.1.MySQL可以通过启动是通过设置配置参数或者使...

关于数据库主键和外键(终于弄懂啦)

一、什么是主键、外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)