Кэширование данных из базы данных SQL для сортировки - PullRequest
1 голос
/ 22 января 2010

Я получил базу данных MySql, к которой я делаю потенциально большие запросы. Данные, которые я получаю из запроса, хранятся в двумерном массиве в PHP, который затем генерирует HTML-таблицу для просмотра пользователем. В настоящее время я пытаюсь реализовать способ сортировки данных различными способами для пользователя. Конечно, я мог бы просто вызвать запрос еще раз и сказать, чтобы он сортировался по-другому, но я думаю, что это, вероятно, будет не очень эффективным способом. Моя идея состоит в том, чтобы как-то кешировать данные и затем вызывать javascript каждый раз, когда данные должны сортироваться по-новому, чтобы получить результат. К сожалению, я не знаю, как это сделать ...:)

Итак, мои вопросы:
- Это хорошая идея сделать это таким образом?
- Как я мог реализовать эту функцию?

Ответы [ 2 ]

1 голос
/ 22 января 2010

Насколько велика эта масштабность? Сколько данных отображается в вашей HTML-таблице за один раз? Если вы ожидаете, что число строк в таблице достигнет точки, в которой вам нужно разбивать на страницы больше, чем несколько страниц, становится эффективнее реализовать сортировку путем повторного вызова данных из базы данных, поэтому вам никогда не придется извлекать весь набор данных.

Если у вас есть 10000 строк в наборе данных, но только 30 на экране за раз, затраты на хранение и сортировку этих строк на стороне клиента не стоят того.

Если вы знаете, что у вас никогда не будет больше, чем горстки «страниц» (скажем, меньше записей, чем 5 * число на страницу), то выбор его один раз и манипулирование им на стороне клиента не составляет большого труда.

Если вы знаете, что ваша рабочая нагрузка будет на 95% маленькой и на 5% массовой, то гибрид может быть в порядке: выбирайте, скажем, 150 записей каждый раз, а если у вас меньше 150, у вас есть все и безопасно оставаться на стороне клиента. Если это больше, предположим, что оно может быть очень большим и извлекать данные порциями. И если существует более постепенный наклон размеров наборов данных, вы всегда можете кэшировать порции и создавать набор данных медленно, пока порядок сортировки не меняется.

1 голос
/ 22 января 2010

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

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