Автор Тема: ОЗУ или база?  (Прочитано 7622 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uzver

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 47
  • +0/-0
  • 0
    • Просмотр профиля
ОЗУ или база?
« : 21 Августа 2006, 18:15:45 »
вопрос немного нестандартный, что лучше для сервера, в плане что вызовет меньшую нагрузку, сделать десяток коннекций к мускулю? или выбрать все одной коннекцией и загрузить данные в ОЗУ с коим дальше и работать? для одной страницы может грузиться до 2 мегов инфы (конечно это довольно редкие ситуации, но все же они есть). то что по скорости работа с ОЗУ быстрее это понятно, вопрос в том какой из методов вызовет меньшую нагрузку на сервер?
ессесно что все писано на пхп ))
В твоих руках все \"за\" и \"против\"
Тебе дарован меч судьбы.  Цену большую заплатив,  Ты жизнь не мыслишь без борьбы  За право \"быть\", а не \"казаться\",  И за собою жечь мосты.  Ты мир заставишь прогибаться,  Иначе ты - уже не ты!

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
ОЗУ или база?
« Ответ #1 : 21 Августа 2006, 18:18:13 »
"коннекция" будет одна, запросов в ее рамках может быть несколько.

Вообще ответ на данный вопрос сильно зависит от контекста задачи. Обрисуешь может быть?
Блог ГО

Оффлайн Uzver

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 47
  • +0/-0
  • 0
    • Просмотр профиля
ОЗУ или база?
« Ответ #2 : 21 Августа 2006, 18:27:03 »
Цитировать
Uzver:
"коннекция" будет одна, запросов в ее рамках может быть несколько.

пардон, апшипся, одна коннекция множество выборок ))
хотя когда-то сталкивался с методом коннекция, выборка, конец коннекции, и так при каждом запросе ))
задача достаточно проста, генерация страниц сайта, проблема в том что страниц этих уже несколько тысяч и при генерации многих страниц необходимо выдать ссылки на тематически схожие страницы, тоесть нужно пробежаться по всему дереву сайта и посмотреть что схоже что нет. (связанные таблицы). плюс сам контент страницы. в результате при генерировании страницы таких обращений к базе до нескольких десятков. Вот собственно и вопрос, стоит ли сразу выбрать всю/все таблицу и закинуть ее/их положим в массив и дальше уже работать с массивом, или все же лучше оставить множество запросов к базе?
В твоих руках все \"за\" и \"против\"
Тебе дарован меч судьбы.  Цену большую заплатив,  Ты жизнь не мыслишь без борьбы  За право \"быть\", а не \"казаться\",  И за собою жечь мосты.  Ты мир заставишь прогибаться,  Иначе ты - уже не ты!

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
ОЗУ или база?
« Ответ #3 : 22 Августа 2006, 07:19:43 »
однозначно работать с базой, а потом уже полученные результаты просто выводить. в массив выливать смысла особого нет, да и SQL с подобными задачами ИМХО работает лучше
Пространные размышления об ИТ и все что вокруг

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
ОЗУ или база?
« Ответ #4 : 22 Августа 2006, 15:16:25 »
Если хорошая посещаемость, то частоиспользуемые данные из базы логичнее держать в памяти, ну и есесьно динамически выгружать ненужное (допустим инфа о юзерах онлайн) или последних сообщениях в чате.
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн vasa_c

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 0
    • Просмотр профиля
    • http://blgo.ru/blog/
ОЗУ или база?
« Ответ #5 : 22 Августа 2006, 15:58:41 »
AlieN, а как их там держать?
Блог ГО

Оффлайн Uzver

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 47
  • +0/-0
  • 0
    • Просмотр профиля
ОЗУ или база?
« Ответ #6 : 22 Августа 2006, 16:22:24 »
Цитировать
AlieN:
Если хорошая посещаемость, то часто используемые данные из базы логичнее держать в памяти, ну и есесьно динамически выгружать ненужное

проблема в том что сервер слабоват (Athlon 64 3000+ 686-class 512М) а ставить новый пока не рентабельно, мускуль висит на нем же. запросов сейчас порядка 10 - 13 тыс. в день, без учета роботов, и наблюдается постоянный рост. пробовал грузить данные в память и работать так, стали быстрее генерироваться страницы, но... сервер периодически стал "подвисать" в зависимости от времени суток он как бы залипает на минуту две потом опять возвращается в норму. доступа к средствам мониторинга к сожалению нет, чтобы накопить статистику, отсюда и вопрос.

Цитировать
vasa_c:
AlieN, а как их там держать?
средствами пхп это помоеум не реализуемо, но например на си это довольно легко, в данном случае предполагается что все данные которы могут понадобится выбираются из базы за один максимум два запроса и сваливаются в массив с которым и ведется дальнейшая работа.
В твоих руках все \"за\" и \"против\"
Тебе дарован меч судьбы.  Цену большую заплатив,  Ты жизнь не мыслишь без борьбы  За право \"быть\", а не \"казаться\",  И за собою жечь мосты.  Ты мир заставишь прогибаться,  Иначе ты - уже не ты!

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
ОЗУ или база?
« Ответ #7 : 27 Августа 2006, 13:27:34 »
Shared Memory для этого придумали.....
http://ru.php.net/manual/en/ref.shmop.php
+ кронтабом раз в 2-3-4-5 минут чистить ненужную инфу.


Uzver
Протоколируй error_log у апаче, чтобы пхп туда ошибки клал, сделай лимит на исполнение скриптов, подключись к базе через phpmyadmin и регулярно смотри show processlist
Также сделай EXPLAIN всех частых запросов к базе, добавь индексов...старайся оботись без тепорари тейбл.....

Пока не ставишь новый сервер, можешь установить отдельный винт на базу....



Ваще решений может быть куча...., может быть просто тебя ДОСят
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28