对MySQL多个OR操作符查询的建议



我想对一个大表(5亿行以上)执行一个MySQL查询。一个特定的列有数千个可能的元素值,我想返回所有的行,这个列只有100个这些值。

假设column1可以有这些值:A1, A2, A3, .., A12309。我想做一个这样的查询:

SELECT column2 WHERE column1='A1' OR column1='A2'... OR column1='A100'

拥有100个不同的OR操作符是非常低效的。

是否有更好的方法来构建这个查询?

MySQL适合这个吗?还是有更好的DBMS/数据分析工具?

SELECT column2  FROM tbl
WHERE column1 IN ('A1', 'A2', ... 'A100')

对于100个值,这将工作得相当好。

这应该也有帮助:

INDEX(column1, column2)

MySQL是哪个版本?(某些版本有一个截止值——超过IN中的某些值会导致执行计划效率降低,特别是对于500M行。)

最新更新