|
|
|
| Всем доброго дня!!!
В админке создаю файл с массивом рубрик сайта :
<?
$page_arr = array();
$page_arr[L1] = array();
$page_arr[L1][id] = "1";
$page_arr[L1][pid] = "0";
$page_arr[L1][is_sect] = "0";
$page_arr[L1][rubric_type_id] = "0";
$page_arr[L1][name] = "Главная";
$page_arr[L1][position] = "000";
$page_arr[L1][template] = "0";
$page_arr[L8] = array();
$page_arr[L8][id] = "8";
$page_arr[L8][pid] = "0";
$page_arr[L8][is_sect] = "0";
$page_arr[L8][rubric_type_id] = "0";
$page_arr[L8][name] = "Регистрация";
$page_arr[L8][position] = "000";
$page_arr[L8][template] = "2";
$page_arr[L10] = array();
$page_arr[L10][id] = "10";
$page_arr[L10][pid] = "0";
$page_arr[L10][is_sect] = "0";
$page_arr[L10][rubric_type_id] = "0";
$page_arr[L10][name] = "Карта ops";
$page_arr[L10][position] = "000";
$page_arr[L10][template] = "1";
$page_arr[L1089] = array();
$page_arr[L1089][id] = "1089";
$page_arr[L1089][pid] = "0";
$page_arr[L1089][is_sect] = "0";
$page_arr[L1089][rubric_type_id] = "2";
$page_arr[L1089][name] = "Обращение";
$page_arr[L1089][position] = "004";
$page_arr[L1089][template] = "1";
$page_arr[L1188] = array();
$page_arr[L1188][id] = "1188";
$page_arr[L1188][pid] = "0";
$page_arr[L1188][is_sect] = "1";
$page_arr[L1188][rubric_type_id] = "2";
$page_arr[L1188][name] = "Совет ";
$page_arr[L1188][position] = "010";
$page_arr[L1188][template] = "1";
$page_arr[L1188][arr] = array();
$page_arr[L1188][arr][0] = "L1064";
$page_arr[L1188][arr][1] = "L1047";
$page_arr[L1188][arr][2] = "L1189";
... и т.д.
|
Т.е. я убрал запрос к базе а просто инклюдю этот файл и получаю массив рубрик.
Вот. В общем набралось уже 10000 строк в этом файле. Весит примерно 400 кБ
Думаю - что быстрее и лучше:
Создать сессию и помещать этот массив в нее и потом считывать уже из сессии
или оставить как есть, каждый раз инклюдить этот файл.
Сессии ведь тоже в файлах хранятся. Кто знает?
Заранее спасибо!!! | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 09:17)
| | быстрее будет когда вернете все в БД.
про сессию вообще думать забудте | |
|
|
|
|
|
|
|
для: Valick
(19.08.2010 в 09:40)
| | Т.е. вы хотите сказать что мускул вернет примерно 600 записей с 15 полями в каждой быстрее чем заинклюдит текстовый файл и уложит все в массив ?
Раньше до такой оптимизации так и было - каждый раз запрос к базе. После создания указанного массива - мне показалось что сайт залетал, пусть и не на много, но как то на душе легче стало за мускул и хостера. | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 10:15)
| | а за оперативную память хостера волнений не возникло?:)
и что за страница такая 600 ссылок? | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 09:17)
| | В сессии данные хранятся в сериализованном виде, и чтобы их получить в исходном, нужно их преобразование. Ваш файл уже готовый к использованию массив, следовательно и не требует промежуточного преобразования.
Вот только удобно ли такие данные хранить в файле? | |
|
|
|
|
|
|
|
для: sim5
(19.08.2010 в 10:16)
| | Дело в том что массив этот создается не из одной таблицы, а из нескольких. Мне кажется сгенерить файл в админе и это будет легче для хостера чем каждый раз ЗАПРОСИЩЕ ждать от мускула.
2Valick :
Насчет оперативки Вы правы, лишних описаний массива много. Надо сократить знаки
>>и что за страница такая 600 ссылок? - Перечень страниц с правами доступа и т.п.. На сайте их примерно 600 штук. | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 10:22)
| | Ну да, а следующим этапом вашей оптимизации, надо полагать, будет перезапись содержимого базы в файлы - это 100% исключит ЗАПРОСИЩИ к базе.
А зачем вам тогда база, выбрасывайте ее, пишите все сразу в файлы, начиная с головы, кончая документами.
Оптимизацией структуры базы и запросов к ней нужно заниматься, а не переложением всего на файлы. | |
|
|
|
|
|
|
|
для: sim5
(19.08.2010 в 10:26)
| | Мои наблюдения говорят о том что сайты медленно грузятся именно из-за многочисленных запросов к базе.
У себя я колчество запросов уменьшил до 3-5 на странице с учетом авторизации и прочих.
Мускул при большом количестве запросов помоему тормозит некоторые, дает приоритеты, и в целом получаем тормоз страниц. | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 10:34)
| | Оптимизируйте запросы, коли ваши наблюдения говорят... Не можете, делайте свой сайт на статических страницах - вот тогда уж точно вам запросы мешать не будут. | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 10:22)
| | вообще-то давным давно придумана постраничная навигация..
"выплевывать" 600 ссылок на одну страницу - это на мой взгляд лишняя нагрузка на базу и на оперативку хостера и на трафик юзера | |
|
|
|
|
|
|
|
для: Valick
(19.08.2010 в 10:33)
| | 600 страниц я не вывожу. Я только имею массив доступа к страницам.
Юзверь заходит - имеет права доступа.
Как я ему покажу куда ему можна ? куда нет? | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 10:36)
| | огого....
странный у Вас подход (если не сказать иначе)
обычно юзер наделяется определенными правами, а уж проверка на доступность страницы определяется на самой странице только после непосредственного запроса этой самой страницы. | |
|
|
|
|
|
|
|
для: Valick
(19.08.2010 в 10:33)
| | Еще: страницы - это не одного типа страницы, там есть и разные блоки новостей, сообщений, заказов , текстовых страниц и т.п.
В шаблоне сайта могут быть любые ссылки в любом месте на любые страницы.
Как я должен узнать что можна юзверю показывать или нет в зависимости от страницы? Вот и имею массив всех страниц сразу.
Хотя вообще надо над этим подумать. | |
|
|
|
|
|
|
|
для: him
(19.08.2010 в 10:42)
| | у Вас блоки, сообщения, заказы, я так понимаю храняться в базе и соответственно имеют какой-то идентификатор уровня доступа, вот и выборку нужно делать по факту имея уровень доступа(+ еще какие-то критерии выборки) пользователя, который обычно записывается в сессию после авторизации. | |
|
|
|
|
|
|
|
для: Valick
(19.08.2010 в 11:06)
| | Хорошо! Буду думать!
Спасибо! | |
|
|
|