Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询-为什么';在这种情况下,它不使用索引吗?_Mysql_Performance_Indexing - Fatal编程技术网

MySQL查询-为什么';在这种情况下,它不使用索引吗?

MySQL查询-为什么';在这种情况下,它不使用索引吗?,mysql,performance,indexing,Mysql,Performance,Indexing,MySQL查询(5.1.61版) “alerts.device\u id”上有一个索引 Explain中的MySQL不使用索引,它显示类型“ALL”,行是表中的完整行数 我不明白为什么它不使用这个索引。 我错过了什么 谢谢 索引未被拾取,因为您既没有在select子句中也没有在where子句中使用它 您需要在设备上添加索引。name 你可以做一件事,强迫引擎考虑索引,如果它是主键,它的值超过0,比如: SELECT alerts.*, devices.user_id FROM

MySQL查询(5.1.61版)

“alerts.device\u id”上有一个索引 Explain中的MySQL不使用索引,它显示类型“ALL”,行是表中的完整行数

我不明白为什么它不使用这个索引。 我错过了什么


谢谢

索引未被拾取,因为您既没有在select子句中也没有在where子句中使用它

您需要在
设备上添加索引。name

你可以做一件事,强迫引擎考虑索引,如果它是主键,它的值超过0,比如:

SELECT alerts.*,
       devices.user_id
  FROM alerts
       left JOIN devices
          ON alerts.device_id = devices.id
 WHERE    devices.name = 'myval' and alerts.deviceid>0

请发布解释的输出。对不起,我过度简化了实际查询,遗漏了问题点!当我再次找到它时,将更新此。
SELECT alerts.*,
       devices.user_id
  FROM alerts
       left JOIN devices
          ON alerts.device_id = devices.id
 WHERE    devices.name = 'myval' and alerts.deviceid>0