首页 / MYSQL / 如何快速实现mysql范围查询?
如何快速实现mysql范围查询?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何快速实现mysql范围查询?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1329字,纯文字阅读大概需要2分钟。
内容图文
![如何快速实现mysql范围查询?](/upload/InfoBanner/zyjiaocheng/236/3d59c573ea624646bb5987dd3a1c4dbd.jpg)
情境:更新一张excel表格,里面有N条数据,是根据数据库里的数据来更新的。
回复内容:
我有一堆的id,高达几百上千个id,每个id在数据库中都有唯一对应的数据,我想快速查询出来这个结果集,但以我的知识只知道sql语句用 in(ids) 来查询,这种查询有500个id和有5000个id的效率差别是不是特别大啊?有没有其他方式能高效点?
情境:更新一张excel表格,里面有N条数据,是根据数据库里的数据来更新的。
我能想到的也就是两个方法, 1). 像你说的, in(ids); 2). 建临时表, 把id插进去, 然后做join.
就是这个网页里提到的:
http://explainextended.com/2009/08/18/passing-parameters-in-mysql-in-list-vs-temporary-table/
一般来说, 第二种好一些.
就我的理解来说,
第一种in list的方式, mysql会把你传入的id列表排序(排序后在内存中), 然后遍历 数据表, 用每一条记录去 二分查找你的 排序后的id列表; 这种工作方式是不会过索引的.
第二种, 临时表和 数据表做join, 数据表在ID字段上的索引是会被使用的.
附一点临时表使用:
mysql> create temporary table if not exists $TMP (id int);
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql> insert into $TMP values(1),(2),(3),(4),(5);
Query OK, 5 rows affected (0.05 sec)
Records: 5 Duplicates: 0 Warnings: 0
断开连接后临时表被自动drop掉.
内容总结
以上是互联网集市为您收集整理的如何快速实现mysql范围查询?全部内容,希望文章能够帮你解决如何快速实现mysql范围查询?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。