Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Увеличение скорости выполнения процедуры (Виктор) 10/07/2010 - 12:43:33
      Re: Увеличение скорости выполнения процедуры (Виктор) 14/07/2010 - 09:36:55

> Original message text:
> From: Виктор - 10/07/2010 - 12:43:33
> Subject:Увеличение скорости выполнения процедуры
> -----------------
> Есть табличка InnoDB, состоящая и 2-х столбцов ( var_num TINYINT - номер переменной, value SMALLINT - значение переменной). PRIMARY INDEX по var_num. Таблица содержит 128 записей.
>
> Требуется с высокой частотой обновлять поле value всех строк таблицы.
>
> Пытался из своей программы в цикле вызывать 128 запросов
> update variables set value=X where var_num=Y;
> Понял, что процесс занимает около 7 секунд, что не подходит.
> Решил реализовать данную операцию в виде хранимой процедуры.
>
> DELIMITER $$
>
> DROP PROCEDURE IF EXISTS `mysqlalphabase`.`set_var` $$
> CREATE PROCEDURE `mysqlalphabase`.`set_var` (in var0 int, in var1 int, in var2 int, in var3 int, in var4 int, in var5 int,
> in var6 int, in var7 int, in var8 int, in var9 int, in var10 int, in var11 int, in var12 int, in var13 int, in var14 int,
> in var15 int, in var16 int, in var17 int, in var18 int, in var19 int, in var20 int, in var21 int, in var22 int, in var23 int,
> in var24 int, in var25 int, in var26 int, in var27 int, in var28 int, in var29 int, in var30 int, in var31 int, in var32 int,
> in var33 int, in var34 int, in var35 int, in var36 int, in var37 int, in var38 int, in var39 int, in var40 int, in var41 int,
> in var42 int, in var43 int, in var44 int, in var45 int, in var46 int, in var47 int, in var48 int, in var49 int, in var50 int,
> in var51 int, in var52 int, in var53 int, in var54 int, in var55 int, in var56 int, in var57 int, in var58 int, in var59 int,
> in var60 int, in var61 int, in var62 int, in var63 int, in var64 int, in var65 int, in var66 int, in var67 int, in var68 int,
> in var69 int, in var70 int, in var71 int, in var72 int, in var73 int, in var74 int, in var75 int, in var76 int, in var77 int,
> in var78 int, in var79 int, in var80 int, in var81 int, in var82 int, in var83 int, in var84 int, in var85 int, in var86 int,
> in var87 int, in var88 int, in var89 int, in var90 int, in var91 int, in var92 int, in var93 int, in var94 int, in var95 int,
> in var96 int, in var97 int, in var98 int, in var99 int, in var100 int, in var101 int, in var102 int, in var103 int, in var104 int,
> in var105 int, in var106 int, in var107 int, in var108 int, in var109 int, in var110 int, in var111 int, in var112 int, in var113 int,
> in var114 int, in var115 int, in var116 int, in var117 int, in var118 int, in var119 int, in var120 int, in var121 int, in var122 int,
> in var123 int, in var124 int, in var125 int, in var126 int, in var127 int)
> BEGIN
> ALTER TABLE variables DISABLE KEYS;
>
> update variables set value=var0 where var_num=0;
> ...
> update variables set value=var127 where var_num=127;
>
> ALTER TABLE variables ENABLE KEYS;
> END $$
>
> DELIMITER ;
>
> Теперь процедура выполняется 5 секунд, т.е. все равно медленно.
>
> Прошу помощи. Как быстро изменять все 128 записей таблицы?
>


From: Виктор - 14/07/2010 - 09:36:55
Subject:Увеличение скорости выполнения процедуры
-----------------
Заменил тип таблицы на MyISAM. Время выполнения запроса сократилось до 0,06 сек


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
37274



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |