我的Wordpress站点存在性能问题,由于注册用户的数量,wp_usermeta
表有近7000万行。
用户没有修改个人资料的权限,所以我考虑删除Wordpress在注册新用户时创建的不必要的元数据。以下行是为普通用户创建的:
+----------------------+------------------------------+
| meta_key | meta_value |
+----------------------+------------------------------+
| nickname | [USER_NICKNAME] |
| first_name | |
| last_name | |
| description | |
| rich_editing | true |
| syntax_highlighting | true |
| comment_shortcuts | false |
| admin_color | fresh |
| use_ssl | 0 |
| show_admin_bar_front | true |
| locale | |
| wpe_capabilities | a:1:{s:10:"subscriber";b:1;} |
| wpe_user_level | 0 |
| default_password_nag | |
| session_tokens | [SESSION_DATA] |
+----------------------+------------------------------+
我已经考虑删除除nickname
和session_tokens
之外的所有行。如果我这样做会有问题吗?Wordpress有没有办法不为新用户创建这些行?
是的,它是安全的。
检查此解决方案
这里已经对此进行了全面的解释。
删除不必要的WP Postmeta
你所要做的就是在你的主题函数中添加以下内容。php文件
function delete_useless_post_meta() {
global $wpdb;
$table = $wpdb->prefix.'postmeta';
$wpdb->delete ($table, array('meta_key' => '_edit_last'));
$wpdb->delete ($table, array('meta_key' => '_edit_lock'));
$wpdb->delete ($table, array('meta_key' => '_wp_old_slug')); }
add_action('wp_logout','delete_useless_post_meta');
更好的方法是改进中描述的usermeta
的索引
http://mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta
(讨论了根据需要调整postmeta
以修改usermeta
。(