Tengo una tabla con más de 300 000 filas y necesito seleccionar el valor más alto para la columna 'id'. Por lo general, voy a hacer como esto:PHP seleccione el mayor valor 'id' de la tabla MySQL
SELECT id FROM my_table ORDER BY id DESC
... pero esto hará que las consultas lentas y no querer usarlo. ¿Hay alguna manera diferente de resolver esta situación? id
es incremento automático y clave principal.
Edición posterior: Parece que mi código completo está bastante mal escrito, como deduzco de sus comentarios. A continuación publiqué una muestra del código que estoy trabajando y las tablas. ¿Puede sugerir una forma adecuada de insertar el último ID + 1 de table_x en dos tablas (incluido table_x en sí mismo). Debo mencionar que el script se ejecutará más de una vez.
TABLE_X TABLE_Y
------------ ----------
id_x | value id_y | id_x
------------ ----------
1 | A 1 | 3
2 | B
3 | C
<?php
for($i=0; $i<10; $i++){
$result_x = mysql_query('SELECT id_x FROM table_x ORDER BY id_x DESC');
$row_x = mysql_fetch_array($result_x);
$next = $row_x['id_x'] + 1;
mysql_query('INSERT INTO table_x(id_x) VALUES("'.$next.'")');
mysql_query('INSERT INTO table_y(id_x) VALUES("'.$next.'")');
}
?>
'SELECT MAX (id)' – knittl
Um, 'SELECCIONE MAX (id) como id FROM my_table'.id es un PK auto_increment, y por lo tanto indexado, así que esto debería ser muy rápido. –
¿por qué necesita una identificación máxima? –