Los dos tipos de datos se manejan de forma prácticamente idéntica. Hay muchas otras razones posibles para la lentitud. (Pero ninguno que yo sepa diría MEDIUMTEXT
es peor que VARHAR
.)
Entonces... Veamos si podemos acelerar la página web...
Poner microtime(true)
alrededor de las llamadas mysql, para asegurarse de que sea MySQL, no PHP. "0.019 segundos" tiene sentido; "1.5 - 2 segundos" suena como si algo estuviera pasando en PHP.
Usar InnoDB, no MiISAM. (A pesar de sus afirmaciones en contrario).
Sintonice correctamente; veamos SHOW VARIABLES LIKE '%buffer%';
¿Cuánta memoria RAM tienes? (El intercambio es terrible para el rendimiento).
¿Cuántas filas estás devolviendo? No es práctico tener más de unas pocas docenas en una página web, así que agregue ORDER BY...LIMIT...
.
Si el límite de la interfaz de usuario es de 1000 caracteres, use TEXT
o VARCHAR(1000)
, no MEDIUMTEXT
. Si está tratando de aumentar hasta 64 000 bytes (potencialmente 4K utf8mb4 caracteres ), luego use TEXT
.
Necesitas esto (con las columnas en cualquier orden):
INDEX(part_id, language)
Si ha habido mucha "abandono" (eliminaciones y/o actualizaciones seguidas de más inserciones) en la tabla MyISAM, los datos pueden fragmentarse y, por lo tanto, ser lentos. Esto puede suceder tanto para VARCHAR
y TEXT
. Esto no sucede con InnoDB.