mysql优化(4)索引覆盖和最优索引
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql优化(4)索引覆盖和最优索引,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1838字,纯文字阅读大概需要3分钟。
内容图文
![mysql优化(4)索引覆盖和最优索引](/upload/InfoBanner/zyjiaocheng/540/4de5fce354ca4182ab6de7e770cc45da.jpg)
如果查询的列恰好是索引的一部分,那么查询只需要在索引文件上进行,不需要回行到磁盘再找数据.
这种查询速度非常快,称为”索引覆盖”
非聚促索引 索引文件对应了数据要回行 浪费掉了时间
索引和数据区别
索引是高效组织起来的树 , 节点 ,查找树叶 结构更优于数据
索引可以被导入内存中进行查询
索引本身数据结构简单 再放入内存 很快很快
。。。。。。。。。结果一回行 就满了。。。我擦。。。
所以呢 如果建立两条索引 index( uid , aid)
如果在索引树上已经覆盖了你想要的数据 如 select uid from msg where aid = 1
索引已经覆盖了想要查的 则直接在内存中的索引取出来 速度效率都非常快 自然不用回行查找
最优索引:
查询频繁,区分度高 ,长度小
尽量覆盖常用字段 , ------》索引覆盖
左前缀不易区分 逆转url 把内容到过来 ; 左前缀区分度大
伪哈希 crc32() 函数 来唯一区分 crc32('http://wwww.baidu.com');给urlcrc 建索引 而不是去给url 避免了索引
学会 explain 来查看效果 ;
伪hash索引效果
同时存 url_hash列
create table t10 ( id int primary key, url char(60) not null default '' );
insert into t10 values (1,'http://www.baidu.com'), (2,'http://www.sina.com'), (3,'http://www.sohu.com.cn'), (4,'http://www.onlinedown.net'), (5,'http://www.gov.cn'); alter table t10 add urlcrc int unsigned not null;
在sql存储时, crcurl== crc32(url),
因为crc的结果是32位int无符号数,因此当数据超过40亿,也会有重复,但这是值得的.
(索引长度为int4个字节)
多咧索引的设计
但从 商城的实际业务业务看, 顾客一般先选大分类->小分类->品牌,
最终选择 (1)index(cat_id,brand_id), + index(cat_id,shop_price)来建立索引
甚至可以再加 (3)index(cat_id,brand_id,shop_price),3个冗余索引 冗余字段 。。。
但(3)中的前2列和(1)中的前2列一样,再去掉(1)
index(cat_id,price) 和 index(cat_id,brand_id,shop_price); 也就是可以冗余 但是不能能重复 左前缀原则
以上就是mysql 优化(4)索引覆盖和最优索引的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!
内容总结
以上是互联网集市为您收集整理的mysql优化(4)索引覆盖和最优索引全部内容,希望文章能够帮你解决mysql优化(4)索引覆盖和最优索引所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。