¿Cómo puedo eliminar las claves huérfanas en las tablas de la base de datos de WordPress?

10

En particular en la tabla wp_options . Después de casi 2 años de producción de blogs, parece que ha aumentado mucho, y no sé cuánta basura hay allí.

¿Conoces un complemento que funcione con WordPress 3.0 o una consulta segura para ejecutar para buscar claves / filas huérfanas?

    
pregunta Drake 11.08.2010 - 22:16

4 respuestas

7

No hay ninguna consulta que sea 100% segura de eliminar todo lo que no se use y no eliminar esas cosas porque cualquier tema o complemento puede agregar opciones a la tabla wp_options . Aún así, con un poco de esfuerzo, puede obtener una idea bastante buena de lo que no está en uso y luego decidir manualmente cuáles de esas cosas eliminar y cuáles no.

Puede colocar el siguiente código temporalmente en el archivo functions.php de su tema y luego visitar cada página (tipo de) en su sitio público y, lo que es más importante, todas las páginas de administración en la consola de administración. Una vez que hayas hecho eso, puedes abrir tu tabla wp_options y mirar el campo use_count (agregado por el código a continuación) para ver qué opciones tienen un use_count igual a cero (el recuento de uso no tiene ningún significado que no sea cualquier cosa mayor que 1 se ha leído o actualizado al menos una vez desde que agregó este código.)

global $wpdb;
header('Content-Type:text/plain');
$results = $wpdb->get_results("SHOW COLUMNS FROM wp_options WHERE Field='use_count'");
if (count($results)==0) {
    $wpdb->query("ALTER TABLE {$wpdb->options} ADD COLUMN use_count int UNSIGNED NOT NULL DEFAULT '0' AFTER autoload");
}

add_action('all','monitor_get_option_usage');
function monitor_get_option_usage($filter){
    if (preg_match('#^option_(.*)$#',$filter)) {
        increment_option_use_count(substr($filter,7));
    }
}
add_action('updated_option','monitor_update_option_usage');
function monitor_update_option_usage($option){
    increment_option_use_count($option);
}
function increment_option_use_count($option) {
    global $wpdb;
    $wpdb->query("UPDATE {$wpdb->options} SET use_count = use_count + 1 WHERE option_name = '$option'");
}

Con esto, probablemente podrás identificar las opciones asociadas con los complementos obsoletos, los temas anteriores e incluso las opciones propias que agregaste al principio pero que ya no usas. Exportelos todos a una copia de seguridad (por si acaso) y luego elimine los que desee eliminar. Una vez que haya terminado, puede eliminar el campo use_count (si lo desea, no le duele que esté allí) y también eliminar el código anterior de su archivo functions.php también.

Aunque esto todavía no es perfecto, es mucho mejor que nada. Espero que ayude?

    
respondido por el MikeSchinkel 12.08.2010 - 06:02
4

El complemento Opciones de limpieza me ha funcionado bien. La descripción del autor del complemento parece ajustarse a lo que usted necesita: "Encuentra opciones huérfanas y permite su eliminación de la tabla wp_options".

No he intentado WP-Optimize personalmente, pero esa también parece prometedora. ¡Y dice que es compatible con WP 2.7 (mientras que Opciones Limpias solo menciona un soporte definido para WP 2.3), bueno!

    
respondido por el Mike Lee 12.08.2010 - 03:19
2

Esto no necesariamente eliminará los problemas con wp_options , pero he usado WP-Optimize para Solucionar muchos problemas de tamaño de la base de datos en mis sitios 3.0. Elimina revisiones de publicaciones innecesarias, comentarios de spam y puede solucionar muchos problemas automáticamente. En mi blog principal, la base de datos se redujo de 30 MB a poco menos de 6 MB y ahora funciona mucho mejor.

    
respondido por el EAMann 11.08.2010 - 22:28
1

Ejecuto tanto Clean Options como WP_Optimize en mi sitio, y el combo hace un excelente trabajo al mantener la base de datos en una excelente forma.

    
respondido por el Keith S. 13.08.2010 - 18:03

Lea otras preguntas en las etiquetas