我有一个非常简单的带有2列的MYSQL表,并运行以下查询:
SELECT * FROM table WHERE (col1 = '123' AND col2 = '456')
OR (col1 = '456' AND col2 = '123')Col1和col2是一个复合主键:PRIMARY KEY('col1','col2')。每一个都是另一个表中主键的外键。
当我为上面的查询运行EXPLAIN命令时,我得到了以下信息:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE table index PRIMARY,col2 col2 8 NULL 1 Using where; Using index上述结果中的type是index,它非常类似于All,因此很可能在大型数据库上运行缓慢。是否有方法改进上面的select命令
发布于 2014-11-05 22:59:23
利用工会怎么样?
SELECT * FROM table WHERE (col1 = '123' AND col2 = '456') UNION ALL SELECT * FROM table WHERE (col1 = '456' AND col2 = '123')
https://dba.stackexchange.com/questions/82011
复制相似问题