Оптимизация использоания базы

camel

Новичок
Оптимизация использоания базы

Трабла такова:
Есть сайт на нем считаються посешения страницы(точнее рубрики, по которым определяютсья рейтинги рубрик), но суть в том что их количество оч велико и счетчик посешения который постоен по принципу простого updata просто валит на глухо базу, решение есть но хоться связыватсья с shared memory, которая будет содержать временно данные по просмотрам и потом их просто валить раз в определенное время... может есть что попроще???
 

RomikChef

Guest
Если ты хочешь связаться с шаред мемори, то зачем задал вопрос в этом разделе?

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

camel

Новичок
Пришлось поставить pconnect, но раньше было без него, и там не точечный инсерт, апдейт, арифметика такова - запросов пиково около 30-40 в секунду, табличка размером в 1000 записей, апдейт по одной из них. Вот такие пироги, хотя может загнался с пиковой загрузкой может даже больше... судя по всему.
 

tony2001

TeaM PHPClub
юзай таблицы типа HEAP, они на диск не пишутся, только в памяти висят.
ключи, индексы проверь.
 

camel

Новичок
по поводу HEAP таблиц. Почитал доку, возник вопрос в случае падения майскл(или перезагрузке) я потеряю тока записи в этой таблице или и ее структуру тоже? т.е. нужно ли контролировать создана ли таблица или нет?
 

AnToXa

prodigy-одаренный ребенок
да нифига :)
выкидывай свою четверку на свалку накуй.
у меня инсерты в таблицу с 5-ю индексами шли по 1K запросов в секунду...

поиск по primary key делается примерно на 2-3 порядка быстрее, так что не говори, что инсерт или апдейт валят базу
 

tony2001

TeaM PHPClub
camel:
по поводу HEAP - да
при запуске надо создавать (это легко автоматизировать)
при шатдауне можно автоматом делать бэкап.

но я больше чем уверен, что у тебя там неправильные индексы - из-за этого все проблемы.
 

Alien

Новичок
Индексы на поля по которым апдейт идет есть?
Они юзаются?
(У меня без них апдейты на 2 порядка медленней работали :D).
 

camel

Новичок
какая альтернатива pconnect???
в секунду приходит 50-150 юзверей(пиково), на страницу, соответсвенно 50-150 коннектов просто убьют систему, по моему разумению
 

tony2001

TeaM PHPClub
camel:
ИНДЕКСЫ НАСТРОЙ
или тебе обяснить что это такое ??
рассуждает, он мля.
давно уже доказано, что пконнект только вред приносит.
 

camel

Новичок
Автор оригинала: tony2001
camel:
ИНДЕКСЫ НАСТРОЙ
или тебе обяснить что это такое ??
рассуждает, он мля.
давно уже доказано, что пконнект только вред приносит.
слушай странный ты чел, я тебе грубил? что такое индексы и без тебя знаю, не маленький, проблема не в индексах, потому что помимо того сайта который я мучаю, там висит 1.5К процессов... так что майскл работает на приделе всех своих возможностей, как ты думаешь если пустить 1.5К коннектов что будет??? Весело да??? мне тоже так что прежде чем подобное писать подумай может у меня есть основания на рассуждения.... Индексы сделаны как надо, так как UPDATE инкрементирует одно поле, по первичному ключу, то как бы с индексами все путем =))) просто 50-150 запросов в секунду на апдейт все на хер завалят, если еще учесть что с тылу еще 1.3К коннектов которые селектят или пишут данные.... подумай весело да и почитай первую мою мессагу
 

kim

Guest
Автор оригинала: camel
Индексы сделаны как надо, так как UPDATE инкрементирует одно поле, по первичному ключу, то как бы с индексами все путем =))) просто 50-150 запросов в секунду на апдейт все на хер завалят, если еще учесть что с тылу еще 1.3К коннектов которые селектят или пишут данные.... подумай весело да и почитай первую мою мессагу
И что, все эти 1.3К запросов к той же таблице, с которой ты делаешь update? Наверна статистику пытаются собрать? Если так - то вынеси статистику в отдельное статическое место и обновляй периодически. Ну а если не так, попробуй отдельного демона выделить для своих рейтингов. Авообще-то для 1.5К процессов можно и апгрейд сделать :)
 

AnToXa

prodigy-одаренный ребенок
Camel
1. Не хами...
2. Тебе рассказывали про HEAP таблицы.
3. Реальный пример: ~70req/sec на выборки + insert в таблицу статистики (она без индексов вообще, чтобы быстрее было)
раз в минуту запускается скриптик, который читает эту таблицу и дописывает статы. Все работает прекрасно.
4. Если у тебя 1.5K _процессов_помимо_mysql_, то это не проблема mysql :)
5. Если 1.5K коннектов, то позволь спросить откуда, если это - от других задач, то это не проблема твоего каунтера :)
6. Тут Антонио подкидывал идею перенести mysql на ramdrive с репликацией на винт, думаю работать будет на пару порядков быстрее.
7. Спасибо за внимание.
 

camel

Новичок
AnToXa
1. я не хамил
2. по поводу HEAP я выражаю свою благодарность
3. реззонно, с этим согласен, считаю сию идею лучшим выходом, спасиб
4. 1.5К коннектов к майскл
5. от других задач, к другим базам но загрузка майскл довольно приличная, ресурсов хватает, но пявляються тормоза на организацию процессов и прочая муть железо хорошее, из всего ПО сервака не выдерживает тока майскл(правда появилось подозрение в ламости админа, так что майскл может падает не из-за загрузки, на что я оч надеюсь, потому что 1.5К коннектов которые сыпят запросы уже скорее задача для серьезных СКЛ серваков)
6. Идея толковая, но вопрос что будет в случае вылета сервака, хорошо если у нас Флеш память, а если нет?
7. Спасибо за советы =))
 

AnToXa

prodigy-одаренный ребенок
1. А что ты делал? :) ну ладно. проехали.
5. это не проблема твоего каунтера!
6. репликацию можно сделать на другую машину, если ты боишься смерти винтов (кстати для этого есть backup)
но ведь, если умрут винты, то неважно где база :)
 

camel

Новичок
AnToXa
Спасибо за совет по повду инсертов в таблицу, я так и поступил. Результат не плохой, точечный инсерты запускаються при каждом посещении, а потом раз в три часа на кроне перловый скрипт чистит табличку и делает update счетчикам, посешения рубрик, получилось не плохо, по крайней мере это надежней чем шаред мемори и HEAD таблицы. Да и гемору меньше, еще раз спасиб =)))
 
Сверху