繁体   English   中英

MySQL上的SQL查询优化

[英]sql query optimisation on MySQL

我有下面的SQL查询,想知道是否有一种优化查询的方法。

SELECT * FROM LogEntry WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(updateTime) > 10;

将在updateTime上添加索引可以提高性能,而可以做更多的事情来提高性能

是。 您需要考虑一种删除列上函数的方法。 因此,如果我有正确的逻辑:

SELECT le.*
FROM LogEntry le
WHERE le.updateTime < NOW() - interval 10 second;

然后,可以利用LogEntry(updateTime)上的索引。

有充分的理由明确列出要返回的列。 这只会对性能产生很小的影响-除非行大小很大。

我要做的第一件事是删除您的select *并选择特定的列

除了优化请求之外,您还可以考虑对表进行分区。 例如,您可以按日在updateTime上对表LogEntry进行分区。 如果表中有很多数据,它将大大加快您的请求速度。

注意:要在updateTime上对表进行分区,updateTime必须是主键的一部分。

暂无
暂无

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

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