我有一个非常大的MySQL表约150,000行的数据。
SELECT * FROM table WHERE id = '1';
以上代码运行良好,因为ID字段是主索引。 但是,最近为了项目的发展,我不得不在另一个领域搜索数据库。 例如
SELECT * FROM table WHERE product_id = '1';
以上字段以前没有索引,但是,我已经将其添加为索引,但是当我尝试运行上述查询时,结果是非常缓慢的。 EXPLAIN查询显示,当我已经添加一个product_id
字段时,没有索引,并且查询到20分钟到30分钟之间的就突然返回一行。
我完整的EXPLAIN结果是:
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+-------+------+----------------------+------+---------+------+------+------------------+
| 1 | SIMPLE | table | ALL | NULL | NULL | NULL | NULL | 157211 | Using where |
+----+-------------+-------+------+----------------------+------+---------+------+------+------------------+
我刚刚看过,ID字段存储为INT,而PRODUCT_ID字段存储为VARCHAR可能会有所帮助。 这可能是问题的根源吗?
相似问题