[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Непонятная тормознутость запроса SQL
RAMM13
Следующая таблица.

SQL
CREATE TABLE `test` (
`date` INT(10) NOT NULL default '0',
`hostday` INT(10) NOT NULL default '0',
`hitday` INT(10) NOT NULL default '0',
`hostweek` INT(10) NOT NULL default '0',
`hitweek` INT(10) NOT NULL default '0',
`hostmon` INT(10) NOT NULL default '0',
`hitmon` INT(10) NOT NULL default '0',
`hostall` INT(10) NOT NULL default '0',
`hitall` INT(10) NOT NULL default '0',
INDEX (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci AUTO_INCREMENT=1;


в таблице всегда 1 запись и не боле.
запросы обновления в ней выполняются медленно не в пример остальным, где таблицы более сложные с VARCHAR, TEXT полями.
Например, такой запрос:
SQL
update `test` set `hostday`=`hostday`+'1' where `date`='2030912' limit 1
Затронуто строк: 1 (запрос занял 0.1997 сек.).

Это среднее значение. В той же базе таблица анкет с более 20 полями обновляется за тысячные доли сек. В приведенной же таблице обновление 4 полей вообще вырастает от 0,5 сек за запрос. какие только тесты не проводил - 95% запросов UPDATE > 0.1 сек. редко когда 0,08-0,05. В чем загвоздка?



Спустя 3 часа, 46 минут, 18 секунд (17.07.2009 - 22:08) sergeiss написал(а):
Там нету никаких триггеров на апдейт?

Спустя 36 минут, 55 секунд (17.07.2009 - 22:45) PandoraBox2007 написал(а):
my.cnf в руки и вперед смотреть проблемы

Спустя 17 часов, 34 минуты, 43 секунды (18.07.2009 - 16:20) RAMM13 написал(а):
Цитата (PandoraBox2007 @ 17.07.2009 - 19:45)
my.cnf в руки и вперед смотреть проблемы

да, InnoDB торозит при вставках и апдейтах... все дело в настройках

Спустя 49 минут, 27 секунд (18.07.2009 - 17:09) PandoraBox2007 написал(а):
ставь в очередь запросы примени так же Slave/Master ну и вобще реплекация и кеширование Оппкод рулит для HighLoad+ проектов

БД не должна быть на одной машине с ВебМордой

Код
[mysqld]
skip-locking

low_priority_updates = 1
concurrent_insert=2

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 1

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

Спустя 8 минут, 7 секунд (18.07.2009 - 17:17) RAMM13 написал(а):
я решил заменить частоизменяемые мелкие таблы на MyISAM, но все равно даже на элементарной INSERT небольшой записи в InnoDB уходит более 0,1 сек в большинстве случаев. Придется переходить на MyISAM поголовно похоже. .. . .

Спустя 3 минуты, 59 секунд (18.07.2009 - 17:21) PandoraBox2007 написал(а):
Цитата
частоизменяемые мелкие таблы на MyISAM, но все равно даже на элементарной INSERT небольшой записи в InnoDB уходит более 0,1 сек
а разве триггеры не для этого созданы ?

Спустя 7 минут, 11 секунд (18.07.2009 - 17:29) PandoraBox2007 написал(а):
покажите результат EXPLAIN на селекте ?

Проведите тест скорости транзакций на MySQL 5.1 и скажите как скорость ))

Спустя 4 минуты, 55 секунд (18.07.2009 - 17:34) RAMM13 написал(а):
полезные ссылки. Но ведь невозможно самому менять настройки сервера MySQL, если не имеешь VPS например.

Цитата
покажите результат explain на селекте ?


к выборкам нет претензий. все оч быстро. Порядка 0,001 сек. хатя таблица еще мала

Спустя 6 минут, 29 секунд (18.07.2009 - 17:40) RAMM13 написал(а):
по моему ручной вызов транзакций на всю таблицу а это не есть гуд для InnoDB. Или я что то недопонимаю

Спустя 3 минуты, 29 секунд (18.07.2009 - 17:44) RAMM13 написал(а):
Цитата
а разве триггеры не для этого созданы ?


Триггеры это предел моих изысканий. Смысл в них по моему только при использовании MyISAM. Кароч я мало знаю ))

Спустя 1 час, 27 минут, 52 секунды (18.07.2009 - 19:11) RAMM13 написал(а):
Цитата (PandoraBox2007 @ 18.07.2009 - 14:09)
ставь в очередь запросы примени так же Slave/Master ну и вобще реплекация и кеширование Оппкод рулит для HighLoad+ проектов

БД не должна быть на одной машине с ВебМордой

Код
[mysqld]
skip-locking

low_priority_updates = 1
concurrent_insert=2

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 1

# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

у меня не виртуальный сервер, я не могу адинистрировать базы и тем более не имею доступа ко второму резервному серверу баз.
MySQL стоит на отдельном сервере.

Спустя 1 минута, 42 секунды (18.07.2009 - 19:13) RAMM13 написал(а):
Цитата (PandoraBox2007 @ 18.07.2009 - 14:29)
покажите результат EXPLAIN на селекте ?

Проведите тест скорости транзакций на MySQL 5.1 и скажите как скорость ))

у меня стоит MySQL 5,0 ) а что в это подвох?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.