2019-04-01 15:27:13 1846次浏览 2条回答 0 悬赏 100 金钱

我有一个 SQL

SELECT aaa,bbb FROM table `o` WHERE xxx=xxxx AND `user_id` IN (1,2,3,4,5,6);

其中in里面是id,因为数据库设计复杂的原因,id只能先查出来在in,问题是id可能会很大,现在已经达到了1万多了,速度的话现在还可以,不算慢,就想请教一下如果数据在大的话会有问题吗?或者有什么优化的方式

  • 回答于 2019-04-02 09:33 举报

    相信你也增加索引了,但是并不确定你具体使用的时候会不会有不使用索引的问题。一般认为把id放在第一位的条件。

    SELECT aaa,bbb FROM table `o` WHERE `user_id` IN (1,2,3,4,5,6) AND xxx=xxxx;
    

    如果还有其它搜索条件固定,那么建立使用复合索引(多字段的索引)。其它没啥了。php处理千万以内的数据,普通的索引搞定没有问题!

    3 条回复
    回复于 2019-04-02 09:49 回复

    恩,索引是使用到了的,就是想问下mysql对应in里面有上万的参数会不会出现问题以及限制

    回复于 2019-04-02 10:12 回复

    in语句不要超过1000条 这个是参考链接https://blog.csdn.net/wangjin890620/article/details/52097013

    回复于 2019-04-03 10:00 回复

    这是sqlserver吧,mysql是没有1000的限制

  • 回答于 2019-04-02 10:54 举报

    把in后面换成子查询应该好一点吧, 如果先查出来还要占内存

    1 条回复
    回复于 2019-04-03 09:58 回复

    查询很复杂,子查询不一定行

您需要登录后才可以回答。登录 | 立即注册
kkk
副董事长

kkk

注册时间:2015-03-06
最后登录:2024-08-22
在线时长:88小时45分
  • 粉丝5
  • 金钱31770
  • 威望0
  • 积分32650

热门问题