MySQL-mysql 多个索引如何选择顺序使用

发布于 2016-10-27 15:47:01 字数 70 浏览 1416 评论 5

当mysql数据库表中有多个索引的时候,该如何选择索引的顺序。使查询效率更高呢?
在程序拼凑sql语句中该何如书写?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

泛泛之交 2017-09-17 18:08:39

通过explain分析sql,看结果进行相应的调整,常用的一些优化技巧见
mysql建立索引有哪些需要注意的

偏爱自由 2017-08-09 20:12:59

通过explain和开启慢查询日志可以查看。或者到慢查询的表中记录了该慢查询。
可以参看一些mysql索引建立原则。
比如aid,tid建立聚集索引。
order by aid desc,tid asc这样顺序不一致,就没有用到索引。
推荐看看<<高性能MYSQL>>这本书,前面几章写的不错的一本书。

泛泛之交 2017-05-23 02:25:42

explain 之后,看一下他的type类型,有index,primary,const,range等等,看一下这几个的区别,其实,有的你是不是可以建立联合索引,当然如果你建立的联合索引,一定要注意最左原则,

晚风撩人 2017-05-05 00:41:31

我觉得可以通过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),不过增加了一项作用,一次表扫描被假设为代价很高。换句话说,只有当无法使用一个给定的索引来查找表中的行时,才使用表扫描。

夜无邪 2017-04-16 04:32:00

@为什么使用ADO能根本杜绝SQL注入?。这样也可以防止严重的SQL注入漏洞。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文