mysql数据库优化 之 002 索引优化

来源:互联网 发布:平安科技 知乎 编辑:程序博客网 时间:2024/05/22 06:31

 谈到索引,首先我们应该先了解一下以下几个索引的知识点。

一、

        1.1 建立索引的优缺点:

优点:    1.大大加快数据的检索速度;       2.创建唯一性索引,保证数据库表中每一行数据的唯一性;       3.加速表和表之间的连接;       4.在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。
缺点:  1.索引需要占用数据表以外的物理存储空间  2.创建索引和维护索引要花费一定的时间  3.当对表进行更新操作时,索引需要被重建,这样降低了数据的维护速度。 1.2索引类型
   普通索引、唯一索引、主键索引和组合索引。   1.2.1 普通索引创建方式:CREATE INDEX indexName ON mytable(username(length));   1.2.2 唯一索引创建方式:UNIQUE     例如:create unique index stusno on student(sno);         它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。    1.2.3 主键索引创建方式: CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID));         数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。   在数据库关系图中为表定义主键将自动创建主键索引,           主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。它是一种         特殊的唯一索引,不允许有空值。
1.2.4 组合索引创建方式:ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);[code]

  1.3 如何选择合适的列创建索引

咱们先查询一下。custimer_id 和 sftaff_id 的离散度


所以这里我们把customer_id放在前面


  1.4 索引优化SQL的方法

   1.4.1 下面这个例子就是冗余的索引,有了主键id之后又创建了一个唯一索引。那么innodb的特性就是在每个索引后面附加主键信息哦、

 

  1.4.2 查找重复及冗余索引的方法和工具




下面是查找冗余的工具,推荐使用,




可以看出哪些索引是冗余的,而且人家还建议我们怎样删除这些索引、。非常方便。

1.5 索引维护的方法、。

由于我们平常业务的变更有一部分索引用不到了,存在表中会影响到我们查询及写入的效率


原创粉丝点击