码迷,mamicode.com
首页 > 数据库 > 详细

mysql索引

时间:2018-12-19 22:37:52      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:索引   type   mysql   const   扫描   .com   sql语句   key值   提高   

参照:https://zhidao.baidu.com/question/1435189115200686659.html

因数据库的内容是写入到磁盘中,因此在进行数据读取时如果没有索引会进行全表扫描获取数据判断过滤。

如果有索引,索引会单独占据一部分磁盘,查找时会先扫描索引,从索引中获取索引数据和整行数据在磁盘的位置,

从而大大提高了查找效率。

        1. 在数据量小时,无多大意义。

        2. 数据量大时,效率可达到成千上万倍。

创建索引注意点:

        1.索引分为一般索引和唯一索引。索引列不可为Null,否则会使得索引失效。

        2. 当数据量大时,对于排序字段也应该建立索引。

        3. 复合索引的左前缀,越是靠前的越会被优先筛选,形成正式索引为:(A,B,C) -> (A,B,C) (A,B) (A)

查看写的sql语句是否可优化,可使用

explain + 查询语句

其中type列的值从好到坏

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

possible_keys 可给出可能的key值。

rows:显示MySQL认为它执行查询时必须检查的行数。

ref:显示使用哪个列或常数与key一起从表中选择行。

 

mysql索引

标签:索引   type   mysql   const   扫描   .com   sql语句   key值   提高   

原文地址:https://www.cnblogs.com/DennyZhao/p/9923124.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!