【发布时间】:2017-07-29 09:56:53
【问题描述】:
我在 mysql 上遇到大表问题。
我的表格上有超过 250 万条数据。这是我的查询。
select count(*) from location
where tagCode=24345
and xLocation >=81 and xLocation <=264
and yLocation >=356 and yLocation <=484
and locationDate >= '2017-03-08 00:00:01' and locationDate <= '2017-03-08 11:54:01';
我正在尝试获取该查询的计数。但它获取行的时间超过 1 秒。这会导致问题。
我在表中添加了索引。
ALTER TABLE 位置添加索引 (tagCode,xLocation,yLocation, 位置日期);
如何提高性能?
【问题讨论】:
-
EXPLAIN对此查询有何评论?使用BETWEEN有帮助吗? -
您的查询和索引对我来说看起来是最佳的。如果其他列(例如 locationDate)上的一个具有比标记代码更低的基数,那么相应地重新排列索引可能是一个想法。
-
单独在DB上执行的行为是否一致?
-
我用解释运行查询,它说 | 1 |简单 |位置 |索引 |标记代码,标记代码_2 |标签代码 |第779章空 | 2319860 |使用哪里;使用索引 |
-
看看这里。也许会有所帮助:gpshumano.blogs.dri.pt/2009/07/06/…