使用索引的Mysql查询使用临时文件排序
我的数据库中有以下两个表: 表1:图像使用索引的Mysql查询使用临时文件排序,mysql,performance,optimization,filesort,Mysql,Performance,Optimization,Filesort,我的数据库中有以下两个表: 表1:图像 专栏:jeid[和其他] 主键:jeid 行数:160万 表2:媒体名称 列:jeid、媒体类型、名、姓 主键:jeid,媒体类型 索引:名、姓 行数:160万 我正在运行以下查询: SELECT media.jeid FROM image AS media LEFT JOIN file_girls_names AS name ON name.jeid = media.jeid AND name.media_type = "image" ORDER
- 专栏:jeid[和其他]
- 主键:jeid
- 行数:160万
- 列:jeid、媒体类型、名、姓
- 主键:jeid,媒体类型
- 索引:名、姓
- 行数:160万
SELECT media.jeid FROM image AS media
LEFT JOIN file_girls_names AS name ON name.jeid = media.jeid AND name.media_type = "image"
ORDER BY name.first_name, name.last_name
LIMIT 0, 50
当我对此查询进行解释时,额外的一列告诉我:
- 使用指数李>
- 使用临时设备李>
- 使用文件排序
谢谢。编写查询的方法不止一种,您必须进行一些测试,不管怎样,下面是我的建议
SELECT `names`.`jeid`
FROM `file_girls_names` AS `names`
INNER JOIN `image` AS `media` ON `names`.`jeid` = `media`.`jeid`
WHERE `names`.`media_type` = 'image'
ORDER BY `names`.`first_name`, `names`.`last_name`
LIMIT 0, 50
注意:这假设两个表中都有匹配的列(除非您特别想要左联接,否则这应该是可以的)