SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 16.01.2009 06:56:40

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Никак не могу выбрать и понять myisam or innoDB

Здраствуйте.
Обчитался интернета везде всюду пишут 100% InnoDB. В mysql administator я его врубил, сервер перезагрузил (не всю машину, только демона) и он при попытке создать InnoDB таблицу говорит типа скомпилируйте mysql с innodb. У меня к сожалению сервер под WIN SERVER 2003 потому как тут "скомлировать"?

Но это даже не так важно.
Я никак не могу понять как падает и из-за чего собственно MyISAM я тестировал нагрузку MyISAM в 5000 запросов инсерта в минуту. Не падает, у некоторых падает чуть ли не от пары сотен десятков.

Ну и собственно что выбирать? Очень долго думал об NDB понял что мне это не подходит пока ибо нет столько серверов, да и игра не стоит свеч, нагрузки не те. Хочу поставить 2 сервера и репликацию сделать. Кто-то говорит что InnoDB надежнее но проигрывает производительность. Интерестно знать ГДЕ? у меня запросы в нескольких местах с JOIN по 5 таблиц довольно больших, как себя поведёт InnoDB?

Кароче если можно мнение профессионалов что лучше InnoDB или MyISAM. А то погуглил тут, дык вообще все говорят с mysql уходить. Голова кругом, хелп.

Неактивен

 

#2 16.01.2009 13:07:22

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Никак не могу выбрать и понять myisam or innoDB

Здравствуйте.

1. Уходить ли с MySQL - вопрос интересный, но, обычно, политический. MySQL справляется с очень большими
нагрузками, как и другие СУБД.

2. Утверждение, что MyISAM быстрее InnoDB - сомнительное. Они предназначены для разных видов приложений.

MyISAM - таблички, предназначеные для приложений с очень большим перевесом в сторону чтения (например,
они будут хорошо себя вести при 1000 чтений на 1 запись). При этом следует понимать, что они не поддерживают
одновременную запись.

InnoDB в свою очередь поддерживает одновременную запись при очень малой деградации производительности
чтений по сравнению с MyISAM. Собственно, в условиях присутствия запросов на запись, параллельные чтения
из той же таблички InnoDB возможны (в отличие от MyISAM), а, соответственно, производительность таких таблиц
будет в среднем выше.

3. Падать сервер не должен ни на одном из видов таблиц, конечно же.

4. Компилировать ничего не надо - возьмите уже собранный сервер.

Неактивен

 

#3 16.01.2009 21:11:21

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Никак не могу выбрать и понять myisam or innoDB

Как интерестно.

О том что MyISAM быстрее говорили на HighLoad++

То есть получается спокойно можно всё перекинуть на InnoDB просто сменив STONAGE ENGINE и поставив One file per table в настроках innoDB.

У меня к сожалению к серверу нет физического и root доступа, да и винды эти поганые. Там в настройках mysql administator я поставил галку врубить InnoDB но вроде как не врублено. Ещё покопаю.

Падать сервер не должен, однако у человека было 5000 запросов В ДЕНЬ на UPDATE (сервис статистики на дренном php скрипте) и таблица myisam после 50 тысяч запросов со дня создания сайта сказала "table crashed. repair table" Восстановить её не удалось, кроме как удалить таблицу, пересоздать вообще всю БД и загрузить из бекапа.

Спасибо за приведённые ответы, уже многое стало понятней.

Неактивен

 

#4 16.01.2009 21:32:57

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Никак не могу выбрать и понять myisam or innoDB

Смог даже выпросить чтобы перезагрузили весь сервер InnoDB даже ibdata1|2|3 не создаёт которые я в конфиге прописал.

Он упорно при попытке создать InnoDB табличку запросом:

CREATE TABLE `user`.`New Table` (
  `1213` INTEGER UNSIGNED NOT NULL DEFAULT NULL AUTO_INCREMENT,
  PRIMARY KEY (`1213`)
)
ENGINE = InnoDB
CHARACTER SET cp1251 COLLATE cp1251_general_ci;


Говорит mysql error 1289: The 'InnoDB' feature is disabled, you need build MySQL with 'InnoDB' to have is working
То есть то что я говорил, что просит скомпилировать с инодб.

Версия MySQL-клиента: 5.0.51a
Версия сервера: 5.0.51b-community-nt-log
Версия протокола: 10
Сервер: localhost via TCP/IP

Неактивен

 

#5 16.01.2009 22:10:58

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Никак не могу выбрать и понять myisam or innoDB

Боюсь, что тут я никак помочь не смогу - нужно ставить сервер с поддержкой InnoDB.

Из "посмотреть" - посмотрите, нет ли "skip-innodb" в конфиге...

Неактивен

 

#6 16.01.2009 22:12:36

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Никак не могу выбрать и понять myisam or innoDB

skip-innodb закоментирован в конфиге. А обновление сервера на 5.1 с офф сайта свеженькой версией может помочь?

Неактивен

 

#7 16.01.2009 22:18:38

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Никак не могу выбрать и понять myisam or innoDB

5.1 не рекомендую, если у Вас очень критичный сервер - пока еще он падает sad

Неактивен

 

#8 16.01.2009 22:21:22

Proger
Активист
Откуда: Санкт-Петербург
Зарегистрирован: 04.09.2008
Сообщений: 172

Re: Никак не могу выбрать и понять myisam or innoDB

У меня благо ничего не разу не падало, это я наслышан на опыте коллег и друзей как MyISAM падает...

Ладно будем думать.

Неактивен

 

#9 16.01.2009 22:57:10

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Никак не могу выбрать и понять myisam or innoDB

Сами по себе таблички MyISAM не падают. Падают серверы, и тогда недописанные таблички бьются.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson