В настоящее время я разрабатываю мобильное приложение и использую Codeigniter MySQL. Теперь я столкнулся с ситуацией, когда у меня есть таблица книг (эта таблица будет 100k + с записями). В этой таблице у меня есть столбец NotSelling. Пример db:Сложность времени сортировки базы данных
Book A 45
Book B 0
Book C 159
Book D 78
.
.
.
Book Z 450
Где выше цифры - это то, что появляется в столбце NotSelling в db. Мне нужно извлечь 20 лучших книг из этой большой таблицы. Теперь мое решение для этого - сортировать таблицу, а затем просто использовать TOP
, чтобы извлечь 20 лучших записей.
Что я хотел бы знать о производительности сортировки таблицы. Поскольку я уверен, что постоянно сортировать таблицу, чтобы получить лучшие 20 результатов, это займет довольно долгое время. Мне были даны решения проблемы:
- указать проблему NotSelling.
- кешировать запрос (но я читал о грубой недействительности, которая может вызвать проблемы, так как мой случай будет иметь значение недействительности)
- Сортировка таблицы занимает 20 верхних записей, помещает их в другую таблицу, а затем периодически просто обновите таблицу каждый час или около того.
Но все ли сказано, что кто-нибудь знает о лучшем решении этой проблемы или имеет способ/способ оптимизации производительности функциональности, которую я ищу? Заметьте, что я новичок, поэтому кто-нибудь сможет указать мне в правильном направлении, где я могу прочитать о производительности базы данных. Я бы очень признателен.
Спасибо за ответ!Было действительно необходимо прояснить ситуацию, прежде чем я начал кодирование – user481610