1
Aluhao 2018-05-28 16:16:06 +08:00
我也有类似这样写,不会慢哦;
id in 里数据多吗? time 要索引,否则会很慢; |
2
peizhao2017 OP |
3
hahastudio 2018-05-28 16:26:00 +08:00
试试 exists 或者 join
|
4
peizhao2017 OP @hahastudio #3
查了下 有说法 外层查询表小于子查询表,则用 exists,外层查询表大于子查询表,则用 in,如果外层和子查询表差不多,则爱用哪个用哪个 我两个表差不多大 换 exists 应该速度差不多 join 一直没看懂 我这条 sql 用 join 要怎么写呢 |
5
ilylx2008 2018-05-28 16:45:46 +08:00 via Android
select id where id=$id 这没必要吧,估计你写错了。
你把 in 语句和 select id 语句分开执行试试看。 in 5000 个 id 一般不会慢 |
6
peizhao2017 OP @ilylx2008 #5
$id 是个程序传来变量值没写错 又优化了下 把 id 的 int 长度从 50 位改到 11 位 都做了索引 50 条一分页的情况下 第一页飞快 越往后翻页越慢 阿里云的 1 核 1G 内存主机 mysql 5.5 php 7.2 不知道哪里问题 机器配置太差? |
7
turan12 2018-05-28 17:12:52 +08:00
limit 就是越往后越慢
|
8
polymerdg 2018-05-28 17:16:21 +08:00
inner join 为什么不用
|
9
peizhao2017 OP |
10
boks 2018-05-29 13:46:00 +08:00
|
11
boks 2018-05-29 13:47:04 +08:00
你这 time 是创建时间吗? 如果是越后面越大的话可以用 id 代替
|
12
peizhao2017 OP |