如何从大表中提高Mysql选择速度?

时间:2014-02-04 14:55:38

标签: mysql sql database

我拥有巨大的850万行表,包括所有城市和其他数据。当我需要像伦敦这样的特定城市时,需要花费大量时间进行查询。我知道从哪个国家/地区获取数据。

SELECT * FROM location_cities
WHERE name LIKE 'London%' 
AND iso = 'GB'

当我知道国家/地区,如GB,FR,US等时,是否有可能提高此查询速度?

2 个答案:

答案 0 :(得分:3)

是。您想在location_cities(iso, name)上添加索引。这是语法:

 create index location_cities_iso_name on location_cities(iso, name);

注意,当表达式不以通配符开头时(如示例所示),这对like最有效。如果您需要like '%York'等功能,则可能需要查看全文索引。

答案 1 :(得分:0)

您应该尝试分区 - 在本例中是“iso”或查询中经常使用的其他参数。以下是对分区如何工作以及它可带来哪些好处的详细描述:

Improving Database Performance with Partitioning