sql MySQL 查询优化
sql query optimisation on MySQL
我有以下 SQL 查询,想知道是否有优化查询的方法。
SELECT * FROM LogEntry WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(updateTime) > 10;
在 updateTime 上添加索引会提高性能吗?可以做更多的事情来提高性能
我要做的第一件事是删除您的 select * 和 select 特定列
是的。你需要想办法去掉列上的函数。所以如果我的逻辑正确:
SELECT le.*
FROM LogEntry le
WHERE le.updateTime < NOW() - interval 10 second;
这可以利用 LogEntry(updateTime)
上的索引。
明确列出要返回的列是有充分理由的。这对性能的影响很小——除非行大小很大。
除了请求的优化之外,您可能会考虑对您的 table 进行分区。
例如,您可以按天对 updateTime 上的 table LogEntry 进行分区。如果您的 table.
中有大量数据,它会大大加快您的请求速度
注意:要根据 updateTime 对 table 进行分区,updateTime 必须是主键的一部分。
我有以下 SQL 查询,想知道是否有优化查询的方法。
SELECT * FROM LogEntry WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(updateTime) > 10;
在 updateTime 上添加索引会提高性能吗?可以做更多的事情来提高性能
我要做的第一件事是删除您的 select * 和 select 特定列
是的。你需要想办法去掉列上的函数。所以如果我的逻辑正确:
SELECT le.*
FROM LogEntry le
WHERE le.updateTime < NOW() - interval 10 second;
这可以利用 LogEntry(updateTime)
上的索引。
明确列出要返回的列是有充分理由的。这对性能的影响很小——除非行大小很大。
除了请求的优化之外,您可能会考虑对您的 table 进行分区。 例如,您可以按天对 updateTime 上的 table LogEntry 进行分区。如果您的 table.
中有大量数据,它会大大加快您的请求速度注意:要根据 updateTime 对 table 进行分区,updateTime 必须是主键的一部分。