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




MySQL.RU - Webboard



Вернуться
Оч.тормозит INSERT в INNODB в отличии MYISAM! (Clipper) 09/01/2007 - 23:43:50
      Re: Оч.тормозит INSERT в INNODB в отличии MYISAM! (Clipper) 10/01/2007 - 03:41:03



From: Clipper - 09/01/2007 - 23:43:50
Subject:Оч.тормозит INSERT в INNODB в отличии MYISAM!
-----------------
Раньше использовал таблицы MYISAM для неочень больших таблиц(несколько тысяч записей). Сейчас при проектировании новой базы с встал вопрос о максимальной оптимизации таблиц, т.к. планируются очень большие объемы данных(миллионы записей), с постоянным добавлением и паралельной выборкой. Везде пишут что тип INNODB самый продвинутый в этом плане, решил сделать тест. На практике у меня оказалось совсем наоборот: INNODB нереально долго выполняет INSERT и UPDATE!
На рабочих машинах результаты получились такие:
1)pentium 1.7Ггц; 512Mb
В таблицу INNODB 1000 записей добавляется ~ за 40 сек.
В таблицу MYISAM 1000 записей добавляется ~ за 0.2 сек.
2)celeron 2.4Ггц; 768Mb
В таблицу INNODB 1000 записей добавляется ~ за 4-5 сек.
В таблицу MYISAM 1000 записей добавляется ~ за 1.9 сек.

Вот такая вот разница! ПОЧЕМУ?

MySQL 5.0.17-nt
конфиги вроде дефолтные:
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=8M
innodb_log_file_size=10M
innodb_thread_concurrency=8
пробовал менять размеры памяти - без разницы.

Таблицы такие:
CREATE TABLE `test` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`field1` INT( 11 ) NOT NULL ,
`field2` VARCHAR( 100 ) NOT NULL
) TYPE = innodb;

CREATE TABLE `test2` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`field1` INT( 11 ) NOT NULL ,
`field2` VARCHAR( 100 ) NOT NULL
) TYPE = MYISAM ;

Запрос через php такой:
for ($i=0;$i<1000;$i++)
mysql_query("INSERT INTO test (field1, field2) VALUES (".rand(1,100).", 'abc')");

И еще заметил такое что где-то после добавления 25 тыс. записей в таблицу типа INNODB, количество записей в таблице возвращается неверное!! т.к. я добавлял записи кратные 1000, например phpmyadmin показывает чет нето, т.е. перезагружая страницу с обзором количество записей возвращается разное. при том что с типом MYISAM все было нормально.

Объясните что не так с INNODB?
может версия mysql с ним глюкнуто работает?
или настройки нужны особо тонкие?
или все правильно и INNODB это мазохизм? :)


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

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

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



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