php - mysql 查询时间太长

标签 php mysql internal-server-error

此查询需要很长时间才能生成结果。并在 php 页面中创建 500 内部服务器错误。

SELECT DISTINCT tower_mac_address AS MAC_Address, tower_survey_no AS Survey_No 
FROM tower 
WHERE 
SUBSTR(REPLACE(tower_mac_address,':',''),7,6) 
NOT IN 
    (SELECT DISTINCT deviceid FROM device_data 
    WHERE SUBSTRING(date_time,1,10)=CURRENT_DATE)

请帮忙

最佳答案

你的查询实在是太糟糕了。由于您正在使用 SUBSTR(REPLACE ..... 它不能在 tower_mac_address 列上使用索引。对于该内部查询的类似情况,您再次拥有 SUBSTR...。您可以准备具有该 SUBSTR 的新列,而不是这样做(已经替换...,并在该列上添加索引。

顺便说一句,当您计算应该用于内部 WHERE 的值时,不要使用 SUBSTRING 来获取日期时间的日期部分,而是使用 DATE()功能。

关于php - mysql 查询时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12018815/

相关文章:

php - 遍历数组并插入数据的最有效方法是什么

mysql选择AS

mysql - 如何获取每个产品属性/过滤器的总数,如 newegg

android - 关于android服务器错误500

python - 加载我的数据库页面(Flask/Heroku)时如何修复内部服务器错误?

php - 用于发出简单 HTTP 请求的 Lambda 函数

php - 如何使用选择的 Jquery 自定义滚动条

php - 从服务器响应中接收额外信息

mysql - 无法访问 azure mysql

javascript - jQuery - AJAX POST 请求给出 500 内部服务器错误