mysql索引
博客专区 > 心翔 的博客 > 博客详情
mysql索引
心翔 发表于2年前
mysql索引
  • 发表于 2年前
  • 阅读 173
  • 收藏 11
  • 点赞 0
  • 评论 0

mysql索引类型

  • Normal
  • Unique
  • Full Text
  • 主键

为什么建索引

http://blog.csdn.net/adenfeng/article/details/5419354

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。


一个索引键名下有多个字段和一个字段有一个索引键名有什么不同

因为一个MYSQL查询语句只使用一个索引,当你这个语句的WHERE有两个字段作为条件的话,如果使用两个字段联合起来建立一个索引,性能和高得多。反之,如果是两个字段分别建立的索引,MYSQL只能使用其中一个,另外一个用顺序查询。


简单的说,索引就是排序的结果,
多列索引就是多列共同排序的结果.

例如在字段a,b,c上建了多列索引,其结果就是以a,b,c排序的,
a列是第一排序列,所以以a查询时可以用上该索引.
b,c列是第二,第三排序列,其顺序不一定是有序的,所以以b,c查询时无法使用该索引.

例如:假设存在组合索引 index(name,year),查询语句 SELECT * FROM multi_column_index WHERE name='hello' AND year='21'能够使用该索引。查询语句 SELECT * FROM multi_column_index WHERE name='world'也能够使用该索引。但是,查询语句 SELECT * FROM multi_column_index WHERE year='22'不能够使用该索引,因为没有组合索引的引导列,即,要想使用year列进行查找,必需出现name等于某值。

如何优化索引

  • 经常检查系统使用的sql查询,对常用的where关键字和order by关键字建立索引或联合索引
  • 使用sql分析命令explain,检查查询效果
共有 人打赏支持
粉丝 16
博文 214
码字总数 44472
×
心翔
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: