Сортировка строк в БД (по id или другому полю?) - PullRequest
0 голосов
/ 29 марта 2011

Как лучше и почему?

  1. сортировка строк по id
  2. сортировка строк по другому полю (например, создать время)

Upd 1. Конечно, я могу добавить индекс для другого поля
Upd 2. Лучший по скорости и удобству использования

Ответы [ 2 ]

0 голосов
/ 29 марта 2011

Я предполагаю, что вы используете реляционную базу данных, такую ​​как MySQL или PostgreSQL, а не одну из баз данных, отличных от SQL.

Это означает, что вы взаимодействуете с базой данных с использованием языка SQL, испособ получения данных из базы данных заключается в использовании оператора SQL SELECT.Как правило, ваши таблицы будут иметь атрибут «ключ», что означает, что каждая строка имеет уникальное значение для этого атрибута, и обычно база данных будет хранить данные, предварительно отсортированные по этому ключу (часто в структуре данных B-дерева),

Итак, когда вы выполняете запрос, например, «ВЫБЕРИТЕ имя, фамилия ОТ сотрудников;», где «сотрудники» - это таблица с несколькими атрибутами, такими как «employee_id», «firstname», «lastname», "home_address" и т. д., как правило, данные будут доставляться в порядке значения employee_id.

Чтобы отсортировать данные в другом порядке, вы можете использовать SQL-выражение «ORDER_BY» в операторе SELECT.Например, если вы хотите, чтобы данные сортировались по «фамилии», вы можете использовать что-то вроде «SELECT firstname, фамилия FROM сотрудников ORDER_BY lastname;».

Один из способов, которым база данных может реализовать этот запрос, -извлечь все данные и затем отсортировать их перед передачей пользователю.

Кроме того, можно создать индексы для таблицы, которая позволяет базе данных находить строки с конкретными значениями или диапазонами значений,для атрибутов или наборов атрибутов.Если вы добавили предложение «WHERE» в запрос SELECT, которое (значительно) уменьшает количество совпадающих строк, то база данных может использовать индекс для ускорения обработки запроса, сначала отфильтровав строки, а затем (при необходимости) отсортировав их,Обратите внимание, что вся тема оптимизации запросов для баз данных является сложной и учитывает широкий спектр факторов, чтобы попытаться оценить, какая из возможных альтернатив реализации запроса приведет к самой быстрой реализации.

0 голосов
/ 29 марта 2011

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

Фактическая сортировка (как в ORDER BY MyColumn ASC|DESC) действительно важна только в контексте запросов к базе данных. То, как вы решите отсортировать результаты запроса, обычно зависит от того, как вы собираетесь использовать свои данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...