Mysql中sql语句问题

_小石头_ 2019-03-22 03:40:53
我目前有一张表为log_data 其中数据量大于十万条
我现在的需求是写一条sql根据log_data表中的unit_id字段来得到两条不同的log_data数据,然后比对这两条数据如果其中的status和standard_time相同 就得到这两条数据。

下面是我写的sql:
SELECT
*
FROM log_data AS a
LEFT JOIN
log_data AS b
ON a.`status` = b.`status` = 0 AND a.standard_time = b.standard_time AND a.data_num = b.data_num
WHERE a.unit_id = 0 AND b.unit_id = 1 LIMIT 0,10

只查询10条数据 就会卡死 。请大神帮我优化一下sql语句 跪谢

...全文
277 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
_小石头_ 2019-03-25
  • 打赏
  • 举报
回复
引用 2 楼 卖水果的net 的回复:
create index ix_log_data on log_data(status , standard_time, data_num, unit_id)
谢谢 这索引建了确实快了很多 。而且 a.`status` = b.`status` = 0 确实也不能这样写 。不然查不出来数据。感谢
卖水果的net 2019-03-23
  • 打赏
  • 举报
回复
另外,你确定 ON a.`status` = b.`status` = 0 这是你的关联条件吗?
卖水果的net 2019-03-23
  • 打赏
  • 举报
回复
create index ix_log_data on log_data(status , standard_time, data_num, unit_id)
echso。。 2019-03-23
  • 打赏
  • 举报
回复
可以在数据表里创建索引,这样查询可以快点

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧