Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как лучше делать выборку?
seowin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 40895
На форуме: 1 год, 10 месяцев
Карма:




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

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

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

При генерации каждого файла - идет новая выборка этих 30-50 строк.

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









Как часто нужно это делать?
Если один раз – то абсолютно не важно как это делать.
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
seowin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 40895
На форуме: 1 год, 10 месяцев
Карма:




30-50 раз подряд по 250к - 1млн файлов.

Периодичность - раз в несколько дней
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









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

Ну лучше всего из какого-нибудь in-memory хранилища. Типа Redis.
Из БД (MySQL видимо) и из файла тоже можно в принципе. Можно доставать строки не перед кадой генерацией файла (по 30-50), а доставать по 300-500 и генерировать 10 файлов...
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
seowin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 40895
На форуме: 1 год, 10 месяцев
Карма:




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

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

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

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

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

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

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

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

Как лучше оптимизировать все это дело, чтобы и скорость была максимально возможной, и в тоже время сервер не падал?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 12 дней


я предлагаю за такие сайты - ставить к стенке.


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5497
Пользователь №: 35718
На форуме: 4 года, 20 дней
Карма: 167




Игорь_Vasinsky, а сложить 2+2 не? smile.gif

большое количество (около 1 млн.) html файлов + seowin


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 3 месяца, 26 дней
Карма: 13




seowin, по моему мнению вы начинаете смотреть не с той стороны на проблему.
В вашем текущем варианте выборка из базы для 1 млн файлов не самое большое зло, у вас все может упереться в запись/чтение диска.

Как бы я начал делать в вашем случае.
1. делаю карту сайта с линками и кормлю ее ПС.
2. При открытии страницы проверяем наличие файла, если нет, то делаем запрос к базе и создаем файл для страницы , затем его отдаем.

Вот и все. По факту это называется кеширвоание wink.gif В вашем случае это уход от проблемы с мгновенной нагрузкой на сервер. файлы будут создаваться постепенно. по мере обращения к ним.

П.С. SQLLite не лучшее решение для ваших задач.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
seowin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 22
Пользователь №: 40895
На форуме: 1 год, 10 месяцев
Карма:




Цитата (icedfox @ 27.11.2015 - 18:07)
seowin, по моему мнению вы начинаете смотреть не с той стороны на проблему.
В вашем текущем варианте выборка из базы для 1 млн файлов не самое большое зло, у вас все может упереться в запись/чтение диска.

Как бы я начал делать в вашем случае.
1. делаю карту сайта с линками и кормлю ее ПС.
2. При открытии страницы проверяем наличие файла, если нет, то делаем запрос к базе и создаем файл для страницы , затем его отдаем.

Вот и все. По факту это называется кеширвоание wink.gif В вашем случае это уход от проблемы с мгновенной нагрузкой на сервер. файлы будут создаваться постепенно. по мере обращения к ним.

П.С. SQLLite не лучшее решение для ваших задач.

Спасибо за совет.

Но тут есть 2 проблемы:
1. Важно, чтобы в момент захода пользователя/бота на страницу, страница открывалась как можно быстрее

2. Если скрормить карту сайта боту ПС, получается то же самое, что если бы я генерил страницы до того, как скармливать их боту.

Так как бот будет переходить по ссылкам и страницы также будут генерироваться. Да и к тому же с задержкой.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса