SELECT * FROM table WHERE id in(1,2,3,4,5,6,7...1000,1001);到1000多的时候,速度有点慢了,怎么提高效率?
解决方案 »
- mysql 做数值的截断计算
- mysql bat 游标
- 安装mysql后启动出错
- 问一句关于mysql Date 的 sql 语句
- 从服务器上的错误信息
- 急!我从mysql官方网上下载了mysql5.0.27-win32,安装到我机器上无法访问mysql服务器,报如下错!
- 如何通过MYSQL连接MSSQL数据库?
- 主从同步数据超级慢,200M的binlog文件差不多要一个多小时才能同步完。什么原因。
- mysql_query函数返回值怎么是1呢
- 请各位大侠,帮忙看一下下面触发器Before Insert 语句是否会引起死锁问题?
- mysql 查询很慢,怎么回事。
- CMS系统的文章(content)存储的问题(数据库OR文件系统,这是个问题)
[求证&散分]MySQL 中 where id in (1,2,3,4,...) 的效率问题讨论
里面主要是创建表再联表查询,以及大家都讨论使用in还不错
我想知道在in的数据量大的情况下,有没有其他方法
flush tables上面两条语句都试过,为什么还是会缓存?有其他语句?
select * from table where id in (1,2,3...100)
union all
select * from table where id in (101,102,...200)
union all
....===============================================================
其实感觉慢的原因主要还是要显示的数据多了。
那个清除缓存的命令,试过了,但是我查询第二次的时候时间还是明显是0.0几秒 说明缓存还存在哦。。 恩 这个我试试
explain
select ............
那么tid in(1,2,3,4....)和 tid=1 or tid=2 or tid=3...的查询效率是一样的?
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------------+-------+---------------+---------+---------+------+------+-----------------------------+
| 1 | SIMPLE | threads | range | PRIMARY | PRIMARY | 3 | NULL | 1363 | Using where; Using filesort |
+----+-------------+--------------------+-------+---------------+---------+---------+------+------+-----------------------------+in与or的情况是一样,都有用到索引吗还是都没有用到索引?PS:tid是加了索引
有什么好的解决办法吗,虚心听讲