gpt4 book ai didi

mysql - 一个相对较大的表中的简单 MySQL 查询运行速度非常慢

转载 作者:太空宇宙 更新时间:2023-11-03 10:45:20 26 4
gpt4 key购买 nike

我有一个数据库表,其中包含邮政编码、时区、纬度、经度和覆盖整个世界的其他一些位置数据。表中有 8,379,070 行。可能超过一半 GB 的数据。该表称为 timezones

当我尝试运行查询以获取邮政编码为“90210”的所有记录时,如下所示:
从邮政编码 = 90210 的时区中选择 *;
查询返回 28 行,但仅在 7.73 秒后返回。

我尝试添加一个自动递增的主键整数字段,并通过邮政编码字段对表进行索引,但没有任何帮助。

以这种速度, table 将无法使用。它应该用于在网站上的表单中检索自动完成邮政编码字段的建议。

有什么方法可以让这个运行得更快?


这是我的表格描述:


+------------+------------+-----+-----+---------+ --------------+
|领域 |类型 |空 |键 |默认 |额外 |
+------------+------------+-----+-----+---------+ --------------+
|国家 |变种(45) |是 | |空 | |
|地区1 |变种(45) |是 | |空 | |
|区域2 |变种(45) |是 | |空 | |
|区域3 |变种(45) |是 | |空 | |
|地点 |变种(45) |是 | |空 | |
|邮政编码 |变种(45) |是 |多个 |空 | |
|纬度 |变种(45) |是 | |空 | |
|经度 |变种(45) |是 | |空 | |
|时区 |变种(45) |是 | |空 | |
|协调中心 |变种(45) |是 | |空 | |
|夏令时 |变种(45) |是 | |空 | |
|编号 |整数(11) |否 |优先级 |空 |自动递增 |
+------------+------------+-----+-----+---------+ --------------+
一组 12 行(0.00 秒)

最佳答案

postcode 上保留索引:

create index idx_timezones_postcode on timezones(postcode);

然后,确保您在编写查询时的类型是正确的:

select tz.*
from timezones tz
where tz.postcode = '90210';

类型转换可以阻止索引的使用。

关于mysql - 一个相对较大的表中的简单 MySQL 查询运行速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32840890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com