【发布时间】:2018-07-27 21:38:03
【问题描述】:
我正在将数百万行从 table1 迁移到 table2。迁移后,我正在尝试抽查某些行以查看它们是否已正确迁移。这是一个示例 SQL 查询 [不是确切的查询]:
SELECT tbl1.name,
tbl1.address,
tbl2.name,
tbl2.new_address
FROM
(SELECT *
FROM table1
ORDER BY RAND() limit 10) tbl1
INNER JOIN table2 tbl2
ON tbl1.name = tbl2.name;
我正在尝试从表 1 中选择 10 行与表 2 连接以进行检查。如果我使用解释运行此查询,它会执行全表扫描,即表 1 中的所有行(> 1.3 亿)。如何在 MySQL 中优化这个查询?
【问题讨论】:
-
这里有很多好方法 stackoverflow.com/questions/4329396/… 顺便说一句,我更喜欢生成随机偏移量,如果这对您的数据有用,那么 SQL 就不会那么费劲了..