Почему mysql таблица raw ID не отображается последовательно? - PullRequest
0 голосов
/ 30 августа 2018

Snapshot 1

Snapshot 2

Кто-нибудь мне ответит, почему MySQL таблицы raw id не серийно?

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Если вы не используете предложение ORDER BY, чтобы сделать желаемый заказ явным, результаты запроса дошли до реализации. Это означает, что MySQL может выбрать порядок, если вы этого не сделаете.

В случае таблиц MyISAM порядок по умолчанию состоит в том, что строки порядка хранятся в таблице, которая может со временем смешиваться при добавлении и удалении строк. Новые строки могут помещаться в промежутки, оставленные удаленными строками, даже если это делает их сохраненными «не по порядку».

В случае таблиц InnoDB порядок по умолчанию определяется индексом, используемым для чтения строк. Часто это первичный ключ, но это не так. Это зависит от определения вашей таблицы и SQL-запроса, который вы используете для чтения строк.

Просто используйте ORDER BY, если хотите, чтобы строки были упорядочены по определенному столбцу.

0 голосов
/ 30 августа 2018

MySQL постарается дать вам результаты как можно быстрее, основываясь на вашем запросе.

Если вы не указали MySQL сортировать по какому-либо полю, MySQL, вероятно, выберет порядок сортировки на диске.

Записи в mysql не всегда хранятся в порядке на диске. Например, они могут выйти из строя, если вы удалите запись в середине таблицы. Следующая запись (из соображений экономии места) может быть вставлена ​​в место, где вы ранее удалили запись.

Не беспокойся об этом. Это нормально. Если вы создаете приложение, использующее MySQL, обязательно добавьте ORDER BY id в конце запроса, чтобы получить предсказуемый порядок.

...