小编Guy*_*Guy的帖子

优化大型 MySQL SELECT WHERE IN 子句

如何优化以下 SELECT WHERE IN 情况?

我有一个包含超过 1 亿行且只有 3 列的表。主键 (col1) 是 127 varchar。我正在执行 SELECT col1 WHERE col1 IN (...),其中 IN 子句是 5,000 个字符串。我只是想看看数据库中 5,000 个字符串中的哪一个作为主键。

对于专用服务器和 InnoDB 表,查询需要 3 到 10 秒,这是不可接受的。我不认为 1 亿多行对于 MySQL 来说应该不会太困难,即使选择 5k 行,但也许我错了?

可以做些什么来优化这个?我读过一些关于 FULLTEXT 键的内容 - 因为键是 127 varchar,所以这些会更好吗?或者某种类型的 JOIN 或 UNION 是否会比大型 IN 子句加速此查询?

任何帮助,将不胜感激!谢谢!

- - 编辑 - -

SHOW ENGINE INNODB STATUS;

| InnoDB |      | 
=====================================
2014-07-14 10:59:19 2bf5cf25700 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the …
Run Code Online (Sandbox Code Playgroud)

mysql performance database-design

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

database-design ×1

mysql ×1

performance ×1