Sobre las optimizaciones en las consultas de menéame sobre MariaDB

19 views
Skip to first unread message

Fermin Molina

unread,
May 26, 2016, 9:50:09 PM5/26/16
to Meneame desarrollo
Hola!

Me hubiera gustado responder aquí:

pero los comentarios ya están cerrados, así que contesto en este grupo. Además, también va a servir para gente que vaya a usar el software de menéame.

Montando un clon de menéame, me he encontrado con que la consulta que genera la página principal (y de noticias nuevas), y que Ricardo comenta en la entrada de su blog que anteriormente he citado, no funciona de forma adecuada en el SGBD llamado MariaDB.

El subselect que hay al final no ordena adecuadamente los link_id's, dejándolos unas veces en el orden en que se crearon las entradas en la base de datos, y otras (extrañamente) en orden justamente inverso (independientemente de si pones DESC o ASC).

Buscando un poco de información, encontré que el SQL estándard no permite añadir "ORDER BY" en un subselect, y en concreto, en MariaDB tampoco se permite. Más info en:


En este otro link dice que si se usa "LIMIT" sí funciona, pero a mí con la versión 5.5.47, no me funciona:


Por tanto, he tenido que sacar la optimización para mysql que Ricardo hizo.

Dejo link al patch de mi modificación en github, donde también se encuentra el código de mi fork (citadme si usáis mi código, malditos! :D )

Patch:

Obviamente, se pierde eficiencia con esta modificación... pero se consigue que funcione el código con una mínima modificación.
Si alguien sabe cómo solucionarlo y recuperar esa eficiencia con MariaDB, ya sabe... ;-)

Saludos,

/Fermin

Reply all
Reply to author
Forward
0 new messages