¿Cuál es la forma más eficaz de seleccionar las últimas n filas de una tabla sin cambiar la estructura de la tabla?
¿Cuál es la forma más eficiente de seleccionar las últimas n filas de una tabla usando MySQL? La tabla contiene millones de filas y en un momento dado no sé qué tan grande es la tabla (está en constante crecimiento). La tabla tiene una columna que se incrementa automáticamente y se utiliza como identificador único para cada fila.
SELECT * FROM table_name ORDER BY auto_incremented_id DESC LIMIT n
(Similar a la respuesta de "marco"),
mi favorita también es la función max() de MySQL, en una sola línea , pero hay otras formas de estar seguro:
SELECT whatever FROM mytable WHERE id > (SELECT max(id)-10 FROM mytable);
... y obtienes "última identificación menos 10", normalmente las últimas 10 entradas de esa tabla.
Es una forma breve de evitar el error 1111 ("Uso no válido de la función de grupo") no solo si hay una fila de incremento automático (aquí id).
La función max() se puede utilizar de muchas maneras.