Jos*_*eph 5 mysql indexing optimization b-tree
我有这个查询的问题:
SELECT DISTINCT s.city, pc.start, pc.end
FROM postal_codes pc LEFT JOIN suspects s ON (s.postalcode BETWEEN pc.start AND pc.end)
WHERE pc.user_id = "username"
ORDER BY pc.start
Run Code Online (Sandbox Code Playgroud)
疑似表有大约340 000个条目,邮政编码上有一个索引,我有几个用户,但这个单独的查询需要大约0.5秒,当我用解释运行这个SQL时,我得到这样的东西:http://my.jetscreenshot .com/7536/20111225-myhj-41kb.jpg - 这些NULL是否意味着查询没有使用索引?索引是一个BTREE所以我认为这应该运行得快一点.
你能帮我解决这个问题吗?如果还有其他任何信息,请告诉我.
编辑:我有关于suspects.postalcode,postal_codes.start,postal_codes.end,postal_codes.user_id的索引.
基本上我正在努力实现的目标:我有一个表,其中每个用户ID分配了多个邮政编码范围,因此它看起来像:
user_id | start | end
Run Code Online (Sandbox Code Playgroud)
我有一个嫌疑人表,每个嫌疑人都有一个地址(包含邮政编码),所以在这个查询中我试图获得邮政编码范围 - 开始和结束以及该范围内的城市名称.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |