Typecho优化: Mysql添加索引提高查询速度


叙述211 阅0 评

我使用的数据库是mysql5.7版本,typecho创建后可以通过以下sql语句执行达到提高查询效果,执行前需快照或者备份数据库以防重要数据丢失!还有nginx与php都可以继续优化,目前我的站点除了CDN字体加载有延迟完,几乎秒开。

屏幕截图2026-03-27

1、内容表添加复合索引

ALTER TABLE `typecho_contents`  ADD INDEX `idx_type_status_created` (`type`, `status`, `created`);

2、删除默认的created 单列索引

ALTER TABLE `typecho_contents` DROP INDEX `created`;

3、评论表添加复合索引

ALTER TABLE `typecho_comments`  ADD INDEX `idx_cid_status_created` (`cid`, `status`, `created`);

4、删除单列索引

ALTER TABLE `typecho_comments` DROP INDEX `cid`;
ALTER TABLE `typecho_comments` DROP INDEX `created`;

5、用于文章与分类的关联查询

ALTER TABLE `typecho_relationships` ADD INDEX `idx_mid_cid` (`mid`, `cid`);

6、用于分类/标签的排序显示

ALTER TABLE `typecho_metas`  ADD INDEX `idx_type_order` (`type`, `order`);

完成以上三个步骤,大部分都覆盖了。

-- 查看的索引
SHOW INDEX FROM `typecho_contents`;

SHOW INDEX FROM `typecho_comments`;

SHOW INDEX FROM `typecho_relationships`;
SHOW INDEX FROM `typecho_metas`;

最后可以查看索引使用频率,看是否生效成功,总结:一个简单的联合索引就能提高很多很多速度,在我的工作中也是如此,若查询得慢,就会使用这样子的方法。

SELECT * FROM sys.schema_index_statistics 
WHERE table_schema = '数据库名称'
  AND table_name LIKE 'typecho_%'
ORDER BY rows_selected DESC;

查询出索引的索引情况,还可以把检测结果给ai,让他进一步提出优化意见。

OPTIMIZE TABLE `typecho_contents`;
OPTIMIZE TABLE `typecho_comments`;

还可以执行上面的命令,每月一次的表优化,恭喜你,完成了Typecho数据库的核心优化。

最后更新 2026-03-28

盛世修典:广西美术馆特展

没有下一篇了

评论 ( 0 )