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
Форумы портала PHP.SU :: Версия для печати :: Кэширование - нужен совет
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Кэширование - нужен совет

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

1. lowmax - 25 Августа, 2012 - 00:33:28 - перейти к сообщению
Гугл выдает результат по одному из разделов сайта
14 600 000
База данных mysql кряхтит, запрос выполняет от 5 до 30 сек

Сделал кэширование с сохранением кэшированных файлов в папку
причем для поисков один кэш, для юзеров совсем другой

получилось

CODE (htmlphp):
скопировать код в буфер обмена
  1. /cache/1.txt - это для юзеров
  2. /cache/1r.txt - это для поисковиков
  3. /cache/2.txt
  4. /cache/2r.txt
  5. /cache/3.txt
  6. /cache/3r.txt
  7. /cache/4.txt
  8. /cache/4r.txt
  9. и т.д.


Естественно вообще можно так делать то?
Со временем в папке появится 14 600 000 * 2 = 29 200 000 файлов
Все это дело займет 2 - 3 месяца

файл занимает 17 кб в среднем
отсюда считаем

17 * 14 600 000 = 248 200 000 кб / 1024 = 242 383 мб / 1024 = 237 гб * 2 = 474 гб

Получается что в папке будет лежать 474 гб файлов общее количество которых будет составлять 29 200 000 файлов

Не загнется все это дело?
Что посоветуете?

и не забывайте это всего один раздел сайта, а таких несколько

С кэшированием страницы загружаются мгновенно
2. caballero - 25 Августа, 2012 - 01:31:41 - перейти к сообщению
Цитата:
Гугл выдает результат по одному из разделов сайта
14 600 000

результат чего?

Цитата:
Получается что в папке будет лежать 474 гб файлов общее количество которых будет составлять 29 200 000 файлов

а файловая система предусматривает такие количество файлов в одном каталоге?
3. lowmax - 25 Августа, 2012 - 01:40:53 - перейти к сообщению
caballero пишет:
Цитата:
Гугл выдает результат по одному из разделов сайта
14 600 000

результат чего?

Цитата:
Получается что в папке будет лежать 474 гб файлов общее количество которых будет составлять 29 200 000 файлов

а файловая система предусматривает такие количество файлов в одном каталоге?


результат поиска, найдено страниц гуглом, а значит индексировано - естественно не каких то там, а именно сайта
база огромная mysql ее даже выкачать проблематично
бот каждую секунду дрючит портал уже в течение несколько месяцев
думаю мог бы и быстрее но тут ограничения в нагрузки на сервер
а это не только гугл но и все остальные подрючивают + юзеры

операционная CentOS
хрен знает где искать ограничение на количество файлов в каталоге


в виндоусе создал в папке 800 000 фотографий, 30 сек папка открывалась
а это линукс...
(Добавление)
Для NTFS:
Maximum number of files in a single folder: 4,294,967,295

http://ask-leo[dot]com/is_there_a_li[dot][dot][dot]ry_can_hold[dot]html

судя по моим манипуляциям получается

Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/hda 960992 54974 906018 6% /

т.е.
960992 файлов

или что то не так?
мля...
4. Viper - 25 Августа, 2012 - 06:30:05 - перейти к сообщению
дурная идея хранить столько файлов-то...

Храните в БД. Если БД получается большая то разносите базу по хостам. + Хранить такие данные в mysql заранее идиотская идея. Оно вам потом с БД грести данные по полчаса будет. Nosql вам в помощь.

Конечо лучше заранее подробнее описывать задачу и тип хранимых данных, дабы не гадать что вы там городите за сверхсекретную базу данных Арктурианского флота Седьмой галактики.
5. caballero - 25 Августа, 2012 - 11:51:17 - перейти к сообщению
Цитата:
результат поиска, найдено страниц гуглом, а значит индексировано - естественно не каких то там, а именно сайта

гугл нашел на твоем сайте 14 600 000 страниц?
а можно полюбопытствовать что за сайт такой и как эта цифра получена.
терзают смутные сомнения - либо ты врешь либо не понимаешь о чем говоришь вообще.
как это связано с кешированием и БД я уже даже не спрашиваю.
6. lowmax - 25 Августа, 2012 - 14:33:21 - перейти к сообщению
caballero пишет:
Цитата:
результат поиска, найдено страниц гуглом, а значит индексировано - естественно не каких то там, а именно сайта

гугл нашел на твоем сайте 14 600 000 страниц?
а можно полюбопытствовать что за сайт такой и как эта цифра получена.
терзают смутные сомнения - либо ты врешь либо не понимаешь о чем говоришь вообще.
как это связано с кешированием и БД я уже даже не спрашиваю.


личный блог, блин
пишу каждую ночь статьи уже 100 лет Улыбка

зы в таблице столько же значений, при чем тут гугл, при том что кэшировать проще когда бот заходит, походу ты не догоняешь
7. caballero - 25 Августа, 2012 - 14:43:10 - перейти к сообщению
ссылку можно? Блог с таким посещением должен быт супер популярным в инете.
8. lowmax - 25 Августа, 2012 - 14:54:20 - перейти к сообщению
caballero пишет:
ссылку можно? Блог с таким посещением должен быт супер популярным в инете.


отправил в личку
9. caballero - 25 Августа, 2012 - 15:12:39 - перейти к сообщению
Вася, ты просто вводишь в гугл адрес сайта. понятно что он его же и находит. Только смысл в этом какой.
Ты попробуй поиск по ключевой фразе. Сомневаюсь что он вообще что нибудь найдет.

По такой экзотике как путеводитель по кубе он конечно вернул ОДНУ ссылку а вот по "В.Ф. Дунаев Web-програмирование для всех " уже фигвам

кроме того ссылки ведут в основном на pdf файлы. При чем тут Mysql, кеширование и твой блог.

Радует одно - ты не врешь - просто ни фига не смыслишь чего пишешь.
10. Stierus - 25 Августа, 2012 - 17:43:28 - перейти к сообщению
1) Если бд кипит - шардируйе ее
2) Для кэша используйте memcached или redis
3) Гугл выдает результат по одному из разделов сайта 14 600 000 это он пишет, по факту он даст открыть максимум gthdst 1000 результатов, все что дальше - он пишет "Извините, но Google не выдает более 1000 результатов, а вы запросили результаты с номера 1230."

 

Powered by ExBB FM 1.0 RC1