我有一个超过 200 万行的表,我需要在循环中快速对其进行选择查询。
SELECT ID,WebSite FROM `CompanyData` WHERE A1='data1' OR A2='data2' OR A3='data3'
Run Code Online (Sandbox Code Playgroud)
它需要 300 毫秒。我觉得不应该花这么多时间。这是该查询的 EXPLAIN:
--------+---------------------------------------------------------------------------------------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+-------+---------------+------+---------+------+---------+-------------------------------------------+
| 1 | SIMPLE | CompanyData | index | A1,A2,A3 | A1,A2,A3 | 153,153,153 | NULL | 3 | Using union(A1,A2,A3); Using where |
+----+-------------+----------+-------+---------------+------+---------+------+---------+-------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
这是表结构:
CREATE TABLE `CompanyData` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`WebSite` varchar(150) DEFAULT NULL,
`CompanyName` …Run Code Online (Sandbox Code Playgroud)