MySQL查询性能提升?

标签 mysql performance

我有一个 MySQL 查询类似于:

SELECT `col1`, `col2`
FROM `mytable`
WHERE `col3` = "stuff"
ORDER BY `hour_col` DESC, `minute_col` DESC, `second_col` DESC
LIMIT 1

但由于我只需要返回的第一行,因此似乎有更有效的方法来执行此操作。有什么想法吗?

此外,小时、分钟和秒列需要保持单独的列(换句话说,我不能将它们存储为单一时间数据类型)。

最佳答案

鉴于您的局限性,我认为除了跨 col_3、hour_col、minute_col、second_col、col1、col2 放置复合索引之外,这不会变得更有效。

 CREATE INDEX covering_index 
        ON mytable (col_3, hour_col, minute_col,second_col, col1, col2);

此索引有助于避免在主表中进行点查找,因为它会排序并返回您需要的值。

关于MySQL查询性能提升?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22121278/

相关文章:

php - SQL 匹配所有关键字的开头

php - 通过按下链接并转义反斜杠来运行 MySQL 查询

.net - 如何使用WCF进行负载均衡

sql - Where 子句中的 ANDS 顺序以获得最佳性能

performance - Elisp 在 Windows 和 Linux 上的性能

php - 具有 500,000 条记录的慢速 MYSQL 查询

mysql - 从函数中进行选择后,组函数的使用无效

mysql - 使用数据库结果绘制 R 图形

php - WordPress mysql 中的占位符

PHP - 每次迭代查询单个值或在开始时获取所有值并从数组中检索?