Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Тригры, да или нет? тригеры 
:(
    Опции темы
 
Стоит ли использовать тригеры?
Да [ 8 ]  [80.00%]
Нет [ 2 ]  [20.00%]
Всего проголосовавших: 10
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
Fubu_By
Дата 1.7.2010, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.2.2007

Репутация: нет
Всего: 0



Работал над двумя проектами, в которых таблицы насчитывали миллоны записей. на одном проекте категорически было запрещено использование тригеров, в другом всовывали по несколько тригеров на таблицу(в основном для подсчёта записей, чтобы мотом не использовать count)...

пожалуйста, комментируйте вашу точку зрения


--------------------
PM MAIL WWW   Вверх
Akina
Дата 1.7.2010, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Да. 

Цитата(Fubu_By @  1.7.2010,  14:08 Найти цитируемый пост)
по несколько тригеров на таблицу(в основном для подсчёта записей, чтобы мотом не использовать count)...

А вот в этом случае - однозначно нет.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fubu_By
Дата 1.7.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.2.2007

Репутация: нет
Всего: 0



Цитата(Akina @ 1.7.2010,  13:21)
Да. 

Цитата(Fubu_By @  1.7.2010,  14:08 Найти цитируемый пост)
по несколько тригеров на таблицу(в основном для подсчёта записей, чтобы мотом не использовать count)...

А вот в этом случае - однозначно нет.

почему нет? select тогда отрабатывал намного быстрее, не приходилось 2мил объединять с 4мил(допустим), чтобы посчитать, допустим, сколько у товаров предложений


--------------------
PM MAIL WWW   Вверх
Fubu_By
Дата 2.7.2010, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 14.2.2007

Репутация: нет
Всего: 0



можно ещё ссылки на документацию, где написано "философия" тригиров )))) в каких случаях рекомендуется использование


--------------------
PM MAIL WWW   Вверх
gcc
Дата 4.7.2010, 23:09 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 3
Всего: 17



Fubu_By, 
  •  InnoDB, MyISAM?
  •  есть атомарные операции в memchaсhe, где счетчики (триггеры стоят) в memchaсhe работают, а подсчеты сбрасываются через время в mysql (через время чтобы не дергать ее постоянно)
  •  мне кажется зависит от задач:
    в принципе, если есть фотоальбом, я хочу загрузить фотографии, их например 10 000, пока я буду их загружать  нужно выполнить 10 000 ресурсоемких запросов UPDATE SET count = count+1....  вместо того чтобы сделать один count(*)
  •  если t1.count будет кратный какому-то числу, например, кратный 30, то можно будет пересчитать (корректировать) если не используются транзакции

    Код

                    $c->model('DBI') ->dbh->do(
              'UPDATE users SET count = ( select count(*) from blog where id_un = 1 ) 
               WHERE id = 1')                  if ( ( $cou % 30 ) == 0 );



  •  если счетчик очень много считает, t1.count более 100 000, то тогда использовать для него запрос, тогда когда добавляется новый объект:
    Код

         UPDATE blog
                      SET count = count+1
                   WHERE id_bl = ?

  •  если меньше 100 000 то count(*) 
  •  смотреть логи какие запросы долго выполняются


Это сообщение отредактировал(а) gcc - 5.7.2010, 07:28
PM WWW ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.1424 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.