Задавайте вопросы, мы ответим
Вы не зашли.
Не понимаю почему. В небольшой таблице размером меньше 100 КБ даже. Тип InnoDB.
Запрос: UPDATE `vizitor` SET `last` = '2009-02-27 21:56:49' WHERE `id` = 7 AND `uid` = 1 исполняется 0.01-0.02 сек
Но иногда везёт и запрос исполняется 0.001-0.0005 сек
Собственно что может быть?
Дамп для примера:
Неактивен
Ключ `id` лишний, так как есть ключи `id_2` и `id_3` и они могут использоваться для поиска по id.
0.01 - 0.02 сек это не жутко долго, возможно, просто требуется обращение к диску. Установите innodb_flush_log_at_trx_commit=0
Неактивен
И innodb_buffer_pool_size / innodb_log_buffer_size
Неактивен
Мммм. Я только одного не понимаю у меня в my.cnf всего несколько строчек по InnoDB. То есть если их нет то значения по умолчанию ставятся.
ЗЫ заметил что тормазят не только тут UPDATE'ы, другие запросы с UPDATE тоже имеют похожее быстродействие, хотя опять же они довольно таки простые.
ЗЫЗЫ а если бы ключ `id` был бы PRIMARY, он уже не был бы лишним?
Отредактированно Proger (28.02.2009 15:02:31)
Неактивен
Да, если строчек нет, то ставятся значения по умолчанию.
Ключ PRIMARY был бы не лишним в смысле уникальности и кластерности. Более того, в таблице InnoDB
лучше указывать хотя бы один ключ как PRIMARY.
Неактивен
Спасибо. Нашел как могу заменить один из индексов на примари. Собственно один из моих индексов и есть уникальный, просто я как-то не подумал.
UPDATE'ы теперь где то 0.005-0.0008 - стало лучше хотя бы здесь. Спасибо всем.
Неактивен