因為有個 WordPress 是放在 Mac mini 上,MySQL 是用 brew 安裝的,前一段時間在做過 brew upgrade 後沒注意到 MySQL 被升級到 8 了,所以整個 WordPress 效率變很差。

為了找出問題,要先知道哪些 query 最花時間,在 /usr/local/etc/my.cnf 加入下列幾行來產生需要的 log:

slow_query_log = 1
slow_query_log_file=/tmp/log-slow-queries.log
long_query_time = 2

觀察 log 內容,發現有個重要的 SELECT query 非常花時間:

特別是當 plugin 裝很多,又改過相當多設定後,wp_options 這個 table 就會變得很大,再加上 autoload 欄位又沒有建 index key,所以每次 query 都會花很長的時間。

將 autoload 加入 index 後,就將 query 時間縮短到 0.02s 了。

另外還有一個狀況是只有在新文章時才會用到的某個 plugin,query 內容是 :

SELECT ID FROM wp_posts WHERE guid = 'xxx';

想將 guid 加入 index key 卻因為欄位內容長度超過限制而失敗,後來找了文件才發現改用 FULLTEXT KEY 或是只限制只使用前 80 個字做 key 就可以了。

Proguard使用最新,最全教程,亲自试验

最近公司有一个项目,是外包项目,由于对方也有技术人员,出于技术上的保密,需要对class文件进行二次处理,于是网上找了好久,只发现Proguard是用的最广泛...

阅读全文

获取用户IP的正确姿势

如何获取用户的IP,这个需求简直是太常见了,像登录入口,注册入口,投票,日志记录,api接口中判断同一个ip单位时间内的请求数,可是怎么去获取用户的真实...

阅读全文

将WordPress安装到网站子目录不改URL的方法

首先,在根目录安装好WordPress,然后将根目录中的WordPress所有内容移到你想要的子目录中。 在根目录中创建一个名为 .htaccess的文件, 内容如下,你只...

阅读全文

评论已经关闭。