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

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
没有下一篇了
