+156
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
// где то:
$_SESSION['type_school'] = $db->query("SELECT * FROM ou_type ",array(),'kassoc');
// а потом:
$smarty->assign('type_school',$_SESSION['type_school']);
//и в шаблоне:
<td>{$type_school[$v.base_type].type_name}</td>
$v.base_type - тоже результат запроса. Left/Right/Inner Join - не, не слышал...
А потом: чёта проект тормозит...
Я так подозреваю кто то таким методом оптимизацию и кеширование сделал, ну чтобы бд лишний раз не грузить.. Не, ну, а чё, зачем каждый раз базу данных мучить при открытии одной! странички со списком *****, давайте одну таблицу-справочник из бд откопируем каждому пользователю в его сессию отдельно и будем читать его при каждом session_start даже если на текущей странице нам этот справочник не нужен.
Запостил: vGhost,
05 Ноября 2014
vGhost 05.11.2014 15:00 # +1
Анонимус 05.11.2014 23:32 # +1
В некоторых средах (jvm, clr) активно используется прием: считать при старте приложения справочник в память и юзать оттуда. Но во-первых там оно все таки хранится не в сессии, а в памяти, доступной отовсюду. Во-вторых в PHP так сделать нельзя (точнее говоря ЛЕГКО нельзя).
Ну и наконец этот код вообще не имеет смысла так как БД при правильной настройке и там сохранит данные этой таблицы в кеше и будет брать их из памяти. Так что если только БД не находится на другом конце земного шара и не соеденина с вами по V34, то смысла в таком кеше нет.
inkanus-gray 06.11.2014 05:18 # +1
bormand 06.11.2014 06:35 # 0
Ну да, в каком-нибудь шустром мемкешеде. Тогда еще имеет смысл.
vGhost 06.11.2014 08:28 # 0
bormand 06.11.2014 09:15 # 0
А таблички целиком в сессии кешировать - в любом случае ССЗБ ;)
Анонимус 06.11.2014 20:12 # 0
bormand 06.11.2014 20:22 # 0
Если это кеш тупой статической таблички - запросто. Всё будет нормально.
А вот если этих jvm'ов десяток на разных компах (масштабирование, все дела), а данные надо как-то синхронизировать между разными инстансами (а для сессий как раз таки надо) - тут только субд или мемкешед.
Ну либо привязывать сессию к конкретному инстансу, что тоже не всегда хорошо.
Анонимус 06.11.2014 20:37 # 0
Хотя я видел привязки по JSESSIONID
bormand 06.11.2014 20:47 # 0
Анонимус 06.11.2014 20:49 # 0
Правда мемкеш тоже может жить в облаке и являться толпой серверов
Анонимус 06.11.2014 17:13 # +2