谈到索引,首先我们应该先了解一下以下几个索引的知识点。
一、
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 索引维护的方法、。
由于我们平常业务的变更有一部分索引用不到了,存在表中会影响到我们查询及写入的效率