我使用带有 LEFT 函数的 INNER JOIN 和 WHERE 来匹配记录的前 8 个字符。
INSERT INTO result SELECT id FROM tableA a
INNER JOIN tableB b ON a.zip=b.zip
WHERE LEFT(a.street,8)=LEFT(b.street,8)
Run Code Online (Sandbox Code Playgroud)
既a.street和b.street被索引(部分索引8)。
查询未在 24 小时以上完成。我想知道索引是否有问题,或者是否有更有效的方法来执行此任务
Mysql 不会对应用了函数的列使用索引。
其他数据库确实允许基于函数的索引。
您可以创建一个仅包含 a.street 和 b.street 的前 8 个字符的列并索引它们,这样事情会更快。
| 归档时间: |
|
| 查看次数: |
1095 次 |
| 最近记录: |