## 问题 [PostMaaper#selectPostCount](https://github.com/fanchaoo/forum/blob/027699ec8da9c2c217ee3c60216571bf78fc12ca/src/main/java/com/fc/mapper/PostMapper.java#L19)实现了对post全表的行数统计,因为新版本的Mysql中默认使用了InnoDB作为数据库引擎,在InnoDB中不会缓存表的元数据,因此执行这样的语句会造成比较大的时间开销,而MyISAM则缓存有表的元数据,统计行数可以在很短的时间内完成。**如果没有其它必须使用InnoDB的原因**,建议修改这两张表的存储引擎从而优化这类语句。 参考:https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_count ## 解决方法 修改post的存储引擎为MyISAM
问题
PostMaaper#selectPostCount实现了对post全表的行数统计,因为新版本的Mysql中默认使用了InnoDB作为数据库引擎,在InnoDB中不会缓存表的元数据,因此执行这样的语句会造成比较大的时间开销,而MyISAM则缓存有表的元数据,统计行数可以在很短的时间内完成。如果没有其它必须使用InnoDB的原因,建议修改这两张表的存储引擎从而优化这类语句。
参考:https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_count
解决方法
修改post的存储引擎为MyISAM