1、Meta Box导致的加载缓慢
相关SQL
SELECT DISTINCT meta_key
FROM wp_postmeta
WHERE meta_key NOT BETWEEN '_'
AND '_z'
HAVING meta_key NOT LIKE '\\_%'
ORDER BY meta_key
LIMIT 30
问题解析
该问题的原因是MySql中普通索引的长度最长为767字节,如果使用的是utf8mb4编码的话,那么总的字符长度就是767/4,约为191,而WordPress的post_meta表的meta_key列的字符长度则是255。
所以此时因为meta_key的长度超范围,索引并未生效。
解决方案
可以选择把数据库编码更改为utf8或是将meta_key的长度更改为191,再或者是禁用掉Meta Box功能。
当然,提醒一句,这些更改都可能会破坏兼容性,所以更改前请务必做好测试工作。
持续更新中……