Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как лучше делать выборку?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
seowin
Отправлено: 26 Ноября, 2015 - 17:42:11
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




Задача следующая - нужно максимально быстро и безопасно в плане нагрузки генерировать большое количество (около 1 млн.) html файлов на лету и сохранять их на диск.

Файлы генерируются на основе шаблона и строк текста. По 30-50 строк на файл.

Вопрос: откуда лучше делать выборку этих строк (можно подряд идущих) из БД или же из txt файла, чтобы скорость выборки и генерации была наиболее высокой и от нагрузки не падал сервер?

При генерации каждого файла - идет новая выборка этих 30-50 строк.
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Ноября, 2015 - 18:32:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ты что-то делаешь не так.
Подкинь еще информации.
 
 Top
seowin
Отправлено: 26 Ноября, 2015 - 18:58:17
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




А что конкретно интересует?
 
 Top
DeepVarvar Супермодератор
Отправлено: 26 Ноября, 2015 - 19:56:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Что дальше происходит с этим мильеном статических файлов и как часто их надо обновлять?
 
 Top
seowin
Отправлено: 27 Ноября, 2015 - 10:39:02
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Апр. 2015  


Помог: 0 раз(а)




В общем, задача сейчас больше свелась к тому, как ускорить процесс генерации.

Понял, что создавать 100500 html файлов на сервере не очень хорошая затея, решил, что лучше помещать все в SQLLite базу. И потом уже генерировать страницу на лету на основе шаблона.

Вообще, цель всего этого - генерация страниц для сайтов. Т.е. каждый сайт будет иметь 250к - 1кк страниц.

Встает вопрос, как ускорить процесс записи в SQLLite базу (для каждого сайта база своя) и не положить сервер, если за раз мы генерим, скажем, 50 сайтов.

Как я предполагаю, поочередно производить запись в лайт-базу для каждого сайта будет очень долго.

Т.е. получается такая схема:
Есть SQL база под управлением MySQL. В ней несколько таблиц. В каждой таблице 1кк-3кк строк.

Необходимо сгенерировать 50 сайтов за раз, в каждом сайте по 250к - 1 кк страниц.

Для каждой страницы идет выборка из нескольких таблиц SQL базы, текст обрабатывается и записывается в SQlLite базу каждого сайта.

Как лучше оптимизировать все это дело, чтобы и скорость была максимально возможной, и в тоже время сервер не падал?
 
 Top
Мелкий Супермодератор
Отправлено: 27 Ноября, 2015 - 11:29:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Попробуйте описать задачу ещё раз.
Без своих костылей, а так, какая она есть в действительности. А то вы уже sqlite приплели.

Мой хрустальный шар утверждает, что у вас:
большая куча статических по своему поведению страниц и хочется их раздавать без заметного оверхеда.
Решение такой задачи адекватное и широко распространённое: ставите nginx, memcache, какой-нибудь бекенд. nginx при получении запроса идёт в мемкеш, читает и отдаёт страницу оттуда. Если же в кеше страницы нет - обращается к бекенду, который генерирует эту страницу и кладёт в мемкеш.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB