-- 示例代码:避免使用filesort的优化查询
-- 假设有一个名为 `users` 的表,包含以下字段:
-- id (INT, PRIMARY KEY), name (VARCHAR), created_at (DATETIME)
-- 查询1:未优化的查询,会导致filesort
SELECT * FROM users ORDER BY created_at DESC LIMIT 10;
-- 解释:上述查询会触发filesort,因为没有合适的索引来支持 `created_at` 字段的排序。
-- 查询2:优化后的查询,添加索引以避免filesort
ALTER TABLE users ADD INDEX idx_created_at (created_at);
-- 重新执行查询
SELECT * FROM users ORDER BY created_at DESC LIMIT 10;
-- 解释:通过为 `created_at` 字段创建索引,MySQL 可以直接利用索引进行排序,从而避免了filesort,提高了查询性能。
上一篇:mysql删除数据表
下一篇:yum安装mysql8.0
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站