MySQL-mysql 多个索引如何选择顺序使用
当mysql数据库表中有多个索引的时候,该如何选择索引的顺序。使查询效率更高呢?
在程序拼凑sql语句中该何如书写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
当mysql数据库表中有多个索引的时候,该如何选择索引的顺序。使查询效率更高呢?
在程序拼凑sql语句中该何如书写?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
通过explain分析sql,看结果进行相应的调整,常用的一些优化技巧见
mysql建立索引有哪些需要注意的
通过explain和开启慢查询日志可以查看。或者到慢查询的表中记录了该慢查询。
可以参看一些mysql索引建立原则。
比如aid,tid建立聚集索引。
order by aid desc,tid asc这样顺序不一致,就没有用到索引。
推荐看看<<高性能MYSQL>>这本书,前面几章写的不错的一本书。
explain 之后,看一下他的type类型,有index,primary,const,range等等,看一下这几个的区别,其实,有的你是不是可以建立联合索引,当然如果你建立的联合索引,一定要注意最左原则,
我觉得可以通过explain分析sql,尽量减少数据查询时需要遍历的数据行数,在使用索引时,可以通过USE INDEX,IGNORE INDEX,FORCE INDEX等命令来使用索引:
指定USE INDEX(key_list),您可以告知MySQL只使用一个索引来查找表中的行。
另一种语法IGNORE INDEX(key_list)可以被用于告知MySQL不要使用某些特定的索引。如果EXPLAIN显示MySQL正在使用来自索引清单中的错误索引时,这些提示会有用处。
另外使用FORCE INDEX,其作用接近USE INDEX(key_list),不过增加了一项作用,一次表扫描被假设为代价很高。换句话说,只有当无法使用一个给定的索引来查找表中的行时,才使用表扫描。
@为什么使用ADO能根本杜绝SQL注入?。这样也可以防止严重的SQL注入漏洞。