2016-01-29 2 views
0

im создание приложения в laravel (не похоже на этот запрос, я не думаю).mysql fetch all rows vs on demand select

Есть несколько предоставленных пользователем настроек, сохраненных в настройках таблицы db.

Для удобства использования эти значения объединяются в конфигурацию по умолчанию для приложения (простой php-массив) при загрузке, то есть я могу просто использовать 1 интерфейс для доступа к значениям из них по умолчанию, или перезаписать по значениям в db.

Это в настоящее время означает, что запрос SELECT key,value FROM settings; используется для загрузки прежде всего.

им просто интересно, если кто-нибудь знает, если это не оптимально?

Я не ожидаю более 100 строк в этой таблице, при этом на каждый запрос требуется около 60%.

Учитывая связь/поиск/возвращение запроса было бы оптимальным:

  1. оставить как есть и просто загрузить все на ботинке

  2. добавить autoload столбцов и только загрузки параметров А с это верно при загрузке и загрузить остальные «по требованию» (при необходимости)

  3. нагрузки каждый «по требованию»

, так как таких строк несколько, а данные - две простые строки на строку im, угадывая, просто загружая их все в целом так же быстро, как и загрузка нескольких, а затем остальных по требованию, которые связаны с несколькими запросами на соединение.

Am i right или я должен рассмотреть возможность оптимизации с помощью опции 2/3 или другого метода?

+0

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

ответ

0

Для простоты (менее сложный код) я бы просто загрузил их все. Так что, если 40% -ий не понадобится для конкретного запроса.

Это простой оператор SQL. Нет других вариантов (с разными предложениями WHERE), которые необходимо протестировать.

В целом, похоже, было бы меньше кода для проверки. Я не вижу потенциальной экономии других альтернатив. Я не могу оправдать дополнительную сложность.