普通索引
这是最基本的索引,它没有任何索引,只是为了加快查询速度。
唯一索引
它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。
主键索引
它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引
要求:
组合索引
全文索引
外键
注意:
1、必须一样。
2、必须一样
3、必须一样
4、也必须一样
5、必须在被的中存在。
索引的不足之处
上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:
◆虽然索引大大提高了查询速度,同时却会降低的,如对表进行、和。因为更新表时,MySQL不仅要,还要保存一下。
◆建立索引会的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了,索引文件的会。
索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。
使用索引的注意事项
使用索引时,有以下一些技巧和注意事项:
◆索引不会包含有值的列
只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。
◆使用短索引
对串列进行索引,如果可能应该指定一个前缀长度。例如,如果有一个CHAR(255)的列,如果在前10个或20个字符内,多数值是惟一的,那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。
◆索引列排序
MySQL查询只,因此如果子句中已经的话,那么中的列的。因此数据库默认排序可以的情况下操作;尽量不要包含,如果需要最好给这些列创建复合索引。
◆like语句操作
一般情况下不鼓励使用操作,如果非使用不可,如何使用也是一个问题。使用索引而使用索引。
◆不要在列上进行运算
1.
将在每个行上进行运算,这将导致索引失效而进行全表扫描,因此我们可以改成
1.
◆不使用和操作
以上,就对其中MySQL索引类型进行了介绍。
领取专属 10元无门槛券
私享最新 技术干货