小编Yur*_*lov的帖子

在MySQL中使用内连接表上的索引

我有2亿条记录的表Foo和1000条记录的表格栏,它们是多对一连接的.列Foo.someTime和Bar.someField有索引.同样在Bar 900中,记录的某些字段为1,100,其中某些字段为2.

(1)此查询立即执行:

mysql> select * from Foo f inner join Bar b on f.table_id = b.table_id where f.someTime     between '2008-08-14' and '2018-08-14' and b.someField = 1 limit 20;
...
20 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

(2)这个只需要永远(唯一的变化是b.someField = 2):

mysql> select * from Foo f inner join Bar b on f.table_id = b.table_id where f.someTime     between '2008-08-14' and '2018-08-14' and b.someField = 2 limit 20;
Run Code Online (Sandbox Code Playgroud)

(3)但是如果我在某个时间删除where子句而不是立即执行:

mysql> select * from Foo f inner join Bar b on f.table_id = b.table_id …
Run Code Online (Sandbox Code Playgroud)

mysql indexing inner-join large-data

10
推荐指数
1
解决办法
2万
查看次数

标签 统计

indexing ×1

inner-join ×1

large-data ×1

mysql ×1