繁体   English   中英

MySQL查询使用索引使用临时使用文件排序

[英]Mysql query using index using filesort using temporary

我的数据库中有以下两个表:

表1:图像

  • 专栏:jeid [和其他]
  • 主键:jeid
  • 行数:160万

表2:media_names

  • 列:jeid,媒体类型,first_name,last_name
  • 主键:jeid,media_type
  • 索引:名,姓
  • 行数: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

注意::这假定您在两个表中都有匹配的列(除非您特别想要左连接,否则应该可以)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM