使用MySQL事件处理数据库冗余数据加快网站速度

随着wordpress数据库越来越大,会发现网站越来越慢,现可以把wp_options表和wp_posts表里的一些无用数据删除,SQL语句如下:

DELETE FROM `mywp_posts` WHERE `post_title` = '自动草稿' OR `post_type` = 'revision';
DELETE FROM `mywp_options` WHERE `option_name` LIKE ('_transient_%');

你也可以使用mysql事件,这样就不用常常来执行上面的命令了,按照如下步骤即可:

#查看所有的mysql事件
SELECT * FROM mysql.event;

#查看mysql定时事件是否打开
SHOW VARIABLES LIKE 'event_scheduler';

这种打开定时事件的方式在电脑重启或者mysql重启后会关闭,如果想长久打开可以设置my.ini或my.cnf,加入如下一行语句即可:

event_scheduler = ON

你如果会写事件SQL语句可以直接写好了运行下即可,不过还可以使用phpmyadmin或者那个啥工具来着设置,操作差不多,小编此处以phpmyadmin为例,看下图,不细说:
MySQL事件

另附SQL语句:

CREATE DEFINER = `root`@`localhost` EVENT `delete_posts` ON SCHEDULE EVERY15 DAY STARTS '2019-04-24 00:00:00'ENDS '2020-02-20 00:00:00' ON COMPLETION PRESERVE ENABLE DO DELETE FROM `wp_posts` WHERE `post_title` = '自动草稿' OR `post_type` = 'revision';

CREATE DEFINER = `root`@`localhost` EVENT `delete_transient` ON SCHEDULE EVERY20 DAY STARTS '2019-04-24 00:00:00'ENDS '2020-02-20 00:00:00' ON COMPLETION PRESERVE ENABLE DO DELETE FROM `wp_options` WHERE `option_name` LIKE (
'_transient_%'
);

然后,重启下mysql和运行下:

flush privileges;

郑重声明:

1 本资源来源于互联网,资源的版权归资源原作者所持有,受《中华人民共和国著作权法》等相关法律保护。

2 由于无法和原作者取得联系,所以上传的部分资源无法先通过原作者的同意就分享给大家了,如本资源侵犯了您(原作者)的权益,请联系我们(微信号 xiaohaimei1989),我们会立马删除您的资源,并向您表达诚挚的歉意!

3 本站是一个公益型网站,分享资源的目的在于传播知识,分享知识,收取一点点打赏的辛苦费是用于网站的日常运营开支,并非用于商业用途。

4 本站资源只提供学习和参考研究使用,使用过后请在第一时间内删除。本站不承担资源被单位或个人商用带来的法律责任。

发表评论