Cómo optimizar un foro en phpBB

Autor: Armonth | El jueves 31 de mayo del 2007 @ 04:14.

En el foro de Xeoweb han escrito un hilo pidiendo ayuda porque su foro en phpBB se ha hecho lento y le ha saturado el hosting lo cual no hace mucha gracia.

Yo hace tiempo que no uso phpBB ya que prefiero otros: SMF para los que quieren un foro "clásico", Vanilla también es muy bueno aunque se usa de forma un poco menos "habitual" o, a muy malas, InvisionBoard que tiene la pega de ser "comercial" pero bueno. Y últimamente bbPress pega fuerte y su fácil integración con WordPress (no en vano son de la misma gente) es un plus.

Con tantas alternativas, como ya he dicho, hace tiempo que no uso phpBB pero por aquí todavía conservo algunos consejos sobre cómo optimizarlo para que no se sature tan fácilmente, he cogido el texto, le he sacado las telarañas y añadido referencias.

Activar el pruning o pulgado de hilos

El pruning o "purgado" es el sistema por el cual los hilos sin respuestas pasados X días son borrados, no afecta a las estadísticas globales del foro y aunque no es la mejor solución (si te interesa mantener un "archivo" del foro) puede ser la única solución llegado a cierto punto.

Para ello miramos las celdas de un foro y pulsamos en el desplegable "Ver foro" (o "Observar foro" dependiendo de la versión) ahí te aparecerá una opción para poder purgar todos los mensajes más viejos de "X" días.

Rehacer el índice de búsquedas

Las tablas phpbb_search_wordlist y phpbb_search_wordmatch son el gran "problema" de phpBB: pueden ocupar tranquilamente 2/3 partes de la base de datos.

Su función no es otra que conservar una lista de palabras para que la función de búsqueda funcione. Aquí tenemos dos opciones:

  1. Borrar el contenido de las tablas: las búsquedas dejarán de funcionar con hilos viejos (anteriores al borrado) pero liberarás mucho espacio.

  2. Usar Rebuild Search Index: Rebuild Search Index es un hack muy sencillo de instalar que intenta rehacer el índice de búsquedas que, en algunos casos, reduce el tamaño de esas dos tablas a la mitad.

  3. (Opcionalmente) No permitir búsquedas a usuarios no registrados: personalmente no me gusta la idea pero la cantidad de spammers que buscan hilos en un foro no es nada despreciable, normalmente tiran de Google pero a menudo no es así.

Comprimir las tablas

En éste otro hilo comentan la posibilidad de comprimir las tablas posts_text y search_wordlist usando MySQL:

ALTER TABLE phpbb_search_wordlist PACK_KEYS=1 DELAY_KEY_WRITE=1;

El "precio a pagar" es que al escribir un hilo o hacer una búsqueda será un poquito más lento.

Optimizar tablas

Esto es general para cualquier aplicación que use MySQL, pero mediante MySQL se pueden optimizar las tablas de vez en cuando, el propio phpMyAdmin al seleccionar una o varias tablas tiene la opción "Optimizar / Optimize".

eXtreme Styles mod

eXtreme Styles mod for phpBB 2.0.x me lo han recomendado por varios sitios por los dos primeros puntos que ofrece:

  • Increases speed of phpBB template system by replacing template compilation algorythm with much faster one.
  • Templates cache that allowes you to speed up forum by caching compiled templates.

Modificaciones para foros grandes

Por último, existe un largo hilo (60 páginas, empezado hace 4 años y continua activo) que nos propone una serie de cambios a realizar para foros MUY grandes (50.000 posts por día).

Y terminando cabe decir que si bien phpBB 2.x no es muy rápido (ya digo, prefiero las otras alternativas) nada que comparar si lo optimizas "un poco" (sin matarse) con la nueva rama phpBB 3.x: la parte de MySQL parece mucho más rápida pero la parte de PHP, al menos de momento, es un agujero de recursos :/.

Se aceptan, como siempre, otras alternativas e ideas.

Comentarios