¿Puede WordPress manejar bases de datos gigantes?

Spread the love

La respuesta es sí pero con matices. Este artículo viene por un tweet de una persona que ha puesto que tiene un un woocommerce con una base de datos de 270 GB.

¿Puede WordPress manejar bases de datos gigantes?

Siempre se ha dicho qué WordPress no está preparado para ciertas cosas. No deja de ser un software estaba preparado para hacer blogs y que gracias a los plugins se puede mejorar y expandir. En este caso hablamos de woocommerce. El plugin que transforma tu WordPress en una tienda online. La verdad es que el plugin lleva muchos años funcionando funciona muy bien está instalado muchas tiendas. Pero a mí entender. Y es mi opinión. Parte del modelo de datos de WordPress que no es el más eficiente. Por eso se suele decir qué es una tienda de montada en woocommerce no puede manejar miles de productos.

Aquí os dejo el tweet en cuestión :

Mirando un poco el hilo del tweet sí que vemos porque esa base de datos ocupa 270 GB. La persona que ha escrito el hilo dice que su tienda online tiene alrededor de 100000 productos con diferentes combinaciones de productos. Y aparte de eso tendrá algún plugin que guarda más datos. Por eso el tamaño de la base de datos.

Dice también que las tablas de la base de datos no están optimizadas. Qué hicieron un trabajo de optimización para guardar solo lo necesario y que alguna tabla adicional para guardar datos.

Sin duda alguna es un caso a estudiar en un caso bastante curioso y y que deja bien claro que woocommerce puede trabajar con grandes cantidades de productos. Pero como todo esto tiene un matiz de atrás. Cómo consigue qué WordPress con esa base de datos funciones de una manera más o menos correcto.

Para el que no lo sepa wordPress guarda todo en la base de datos. Guarda los posts, información, configuración. Así que el mero hecho de crear un post en WordPress supone bastantes peticiones a la base de datos. Imagina eso en un woocommerce con miles de productos y con miles de personas comprando a la vez. Esto evidentemente tiene truco.

¿Cómo hace la magia para manejar esa ingente cantidad de datos en WordPress?

Aquí se pueden presentar varias alternativas. Empezamos sobre todo por el hosting. En este caso ese WordPress no está en un hosting normal no porque no pueda estar sino porque evidentemente nos 270 gigas de base de datos no lo soporta cualquier hosting. Creo que mirado el hilo y no lo dice en ningún lado. Esto lo tenga o en uno VPS un poco grande aunque me decanto más por un server dedicado. Total el coste de un server dedicado para una tienda así es ínfimo.

¿ qué es lo que hace para que todas esas peticiones a esa base de datos gigante no ralenticen el WordPress?

Aquí puedes tomar varias vías :

  • La primera podría ser una configuración de alta disponibilidad. Varios frontales para la tienda online y luego por detrás en el backend tienes varios servidores para la base de datos.Aunque la base de datos es muy grande se puede estar replicando en varios servidores. Incluso con esa base de datos tan grande vale está configuración podría hacer que ese woocommerce vaya rápido como el rayo.
  • La segunda es que la base de datos las tengan un servicio ultra optimizado. Hay muchos servicios en la nube que te dan el servicio de base de datos MySQL, MariaDB, o la base datos que tú quieras ultra optimizada. Los sitios como digital Ocean aparte de Google clod Azure y Amazon lo tienen.
  • Pero la magia de poder trabajar con una base de datos tan grande y que el WordPress no se ralentice es gracias a elasticsearch. Elasticsearch es un servicio de búsqueda ultra optimizado. Es un proyecto de software libre qué trabaja con base de datos pero una manera mucho más optimizada. Entonces qué es lo que él hace digamos que descarga todas las peticiones a la base de datos de WordPress al servicio de elasticsearch. Con eso consigue evidentemente que su tienda vuele. Independientemente del tamaño de la base de datos.

Elasticsearch en WordPress

Ahora es cuando te preguntas cómo puedes tú poner este servicio en tu WordPress. Hay varias maneras yo te voy a contar las que he encontrado o las posibles soluciones :

  • La gente de elasticsearch vende el servicio en la nube. Es decir, mujer tú eres pagas a ellos y ellos te monta la infraestructura en Google Cloud, Azure o Amazon. Partimos de que el modelo más barato se planta en unos 30-40 euros al mes. Esta sería la primera de las opciones. Luego es instalar un plugin para que se conecte con la infraestructura y ya está.
  • La segunda de las opciones al ser un software OpenSource es que tú te bajes el software y lo instales en los servidores correspondientes. Está solución la probé en su día y ya te digo que no está al alcance de mucha gente. Y evidentemente tendrías que buscar dónde alojar esos servidores. En VPS cómo digital Ocean o parecidos.
  • La tercera solución te la da el propio WordPress. Es más WordPress.com en sus servicios de pago. Uno de los planes caros venía incluido el servicio de elasticsearch usando el inefable plugin jetpack. Yo en su día lo estuve probando y la verdad es que no me convenció nada la implementación que tenía era un poco mala. Y encima tenías que tener instalado el plugin jetpack. Ahora este servicio lo dan aparte. Sigue utilizando jetpack el Servicio de Búsqueda avanzada con elasticsearch te lo venden como un módulo y nada barato por cierto.

Base de datos woocommerce

La base de datos de WooCommerce es un componente esencial para el funcionamiento de esta plataforma de comercio electrónico desarrollada para WordPress. Al igual que cualquier sitio web, WooCommerce utiliza una base de datos para almacenar y gestionar toda la información relacionada con los productos, los pedidos, los clientes y otros aspectos del negocio. Esta base de datos permite un manejo eficiente de grandes volúmenes de datos, ofreciendo un rendimiento óptimo para tiendas online de cualquier tamaño.

Una de las principales ventajas de la base de datos de WooCommerce es su flexibilidad y escalabilidad. Puede adaptarse a diferentes necesidades y crecer junto con el negocio. Además, WooCommerce permite gestionar múltiples bases de datos, lo que facilita la distribución de la carga de trabajo y mejora el rendimiento del sitio. Esto es especialmente importante cuando se trata de manejar bases de datos gigantes, ya que se puede distribuir la información en diferentes servidores para evitar cuellos de botella y mejorar la velocidad de respuesta.

La base de datos de WooCommerce utiliza el motor de almacenamiento InnoDB, que es una opción muy adecuada para manejar grandes volúmenes de datos. Este motor de almacenamiento ofrece transacciones ACID (Atomicidad, Consistencia, Aislamiento y Durabilidad), lo que garantiza la integridad de los datos y la consistencia en todas las operaciones. Además, InnoDB implementa mecanismos de bloqueo y concurrencia que permiten un acceso simultáneo a la base de datos sin comprometer su integridad.

Para optimizar el rendimiento de la base de datos de WooCommerce, es recomendable realizar tareas de mantenimiento periódicas. Esto incluye la optimización de consultas, la eliminación de datos innecesarios, la indexación adecuada de las tablas y la configuración óptima del servidor de bases de datos. También es importante realizar copias de seguridad regulares para proteger los datos y poder restaurarlos en caso de cualquier eventualidad.

Conclusión

En su día cuando yo estuve mirando y probando este tipo de servicios al final me decante por Algolia. Es un servicio que funciona muy bien de precio no está nada mal y es instalar un plugin y ya te olvidas de todo. Yo tengo instalado la versión gratuita y estoy súper contento con ello.

Así que contestando a la pregunta del principio. WordPress sí que puede manejar bases de datos grandes pero no por si solo sino con ayuda.

Si véis en el artículo alguna palabra que está mal os pido perdón. Hace poco sufrió un accidente y ahora tengo uno de los brazos inmovilizado y escribir con una sola mano me cuesta bastante. Así que utilizo un servicio de dictado y a veces entiende lo que quiere. Y aunque yo intento corregir los errores por si alguno se me escapa por eso os pido perdón.
Y si creéis que el artículo es interesante pues os invito a que le compartáis en vuestras redes sociales.

Photo by Markus Winkler on Unsplash


Spread the love