Ideas para acelerar consultas mysql

adonet

Beta
Verificación en dos pasos desactivada
Desde
23 Oct 2012
Mensajes
62
Crédito(s)
1
Puntos
115
Tengo una web con una base de datos que cada vez es más grande, ya noto como va tardando cada vez más en cargar los datos (php + mariadb).
El problema es que hay una tabla que es la principal, de donde salen los datos importantes y cada vez es más grande.

¿Cómo puedo optimizar para ganar velocidad?

Había pensado en dividir esa tabla en varias, pero en alguna consulta va a tener que sacar datos de todas esas tablas con lo que supongo que tardará lo mismo
 

ocentro

VIP
Beta
Verificación en dos pasos desactivada
Desde
8 Nov 2018
Mensajes
46
Crédito(s)
1
Puntos
136
Sin ver la estructura de tus tablas y las consultas que quieres optimizar no hay mucho que se pueda aconsejar.

Pero generalmente:
  • Indexa columnas de búsqueda y asociación
  • Optimiza las consultas, por ejemplo, seleccionar los campos necesarios en vez de *, ver si los joins de varias tablas puedes "achicarlos" con tablas temporales entre paréntesis, etc.
  • Reducir el número de consultas al mostrar una página, ejemplo, no necesitas obtener el ID o nombre de usuario en cada carga de página, guárdalos en session
.
 

nalayu

Beta
Verificación en dos pasos desactivada
Desde
29 May 2019
Mensajes
58
Crédito(s)
0
Puntos
71
Separar la tabla principal en otras más pequeñas te ayudará en caso que necesites escalar la web. Además quees importante para leer los datos y a entender mejor cómo quieres estructurar la web.

Cómo ha dicho [MENTION=200969]ocentro[/MENTION] indexar columnas suele ayudar a hacer consultas más rápidas, pero además de que la consulta vaya rápido debes crear la base de datos pensando en el futuro.
Es importante mantener un orden si crees que esos datos van a ir creciendo con el tiempo, si no lo haces cada vez te resultará más complicado añadir nuevas features.

Un saludo!
 

minsurf

Beta
Verificación en dos pasos desactivada
Desde
3 May 2019
Mensajes
32
Crédito(s)
0
Puntos
11
Le recomiendo investigar algo sobre data warehouse; creo que le puede servir
 

JarC

No recomendado
Programador
Verificación en dos pasos desactivada
Desde
10 Feb 2011
Mensajes
225
Edad
31
Crédito(s)
1
Puntos
215
Indexar columnas, crear index btree o bitmap o normales dependiendo de la columna, no usar * esto no es optimo pon las columnas que deseas traer.
Tambien puedes hacer una especie de bodega de datos y particionamiento de la BD por periodos ejem Años.
 

Arriba