Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: MyISAM и InnoDB
 
 автор: 1999   (19.07.2007 в 18:52)   письмо автору
 
 

подскажите плз... чем стандартный тип MyISAM хуже или лучше InnoDB. Читал мануал.. понял только, что InnoDB в 100 раз лучше... или не так?

   
 
 автор: Trianon   (19.07.2007 в 19:24)   письмо автору
 
   для: 1999   (19.07.2007 в 18:52)
 

MyISAM значительно быстрее работает и поддерживает полнотекстовый поиск.

   
 
 автор: Vertex   (20.07.2007 в 15:26)   письмо автору
 
   для: 1999   (19.07.2007 в 18:52)
 

1. В отличие от MyISAM, InnoDB не создаются в БД, и для каждой из таблиц не выделяется отдельный файл данных. Исключение - файл определения с расширением *.frm, который всё же создаётся (по умолчанию в базе дынных test). Все таблицы хранятся в едином табличном простанстве, поэтому их имена должны быть уникальными.

2. Хранение данных в едином табличном пространстве позволяет снять ограничения на объём таблиц, т. к. файл с таблицами может быть разбит на несколько частей и распределён по нескольким дисскам илии даже хостам.

3. Данный тип таблиц поддерживает автовосстановление после сбоев.

4. Обеспечивается поддержка транзакций.

5. Это единственный тип таблиц в MySQL, поддерживающий внешние ключи и каскадное удаление.

6. Выполняется блокировка на уровне отдельных записей.

7. Расширенная поддержка кодировок.

8. Таблицы типа InnoDB надёжнее MyISAM и рушатся при достижении объёма в несколько ГБ, однако заметно уступают в скорости (иногда в разы) и не поддерживают полнотекстовый поиск.

источник : "MySQL 5 В подлиннике"

   
 
 автор: 1999   (20.07.2007 в 18:03)   письмо автору
 
   для: Vertex   (20.07.2007 в 15:26)
 

по посту Trianon'а делаю вывод что MyISAM лучше
по посту Vertex'а - лучше InnoDB

кому верить?

   
 
 автор: Vertex   (20.07.2007 в 18:13)   письмо автору
 
   для: 1999   (20.07.2007 в 18:03)
 

книжку как раз Трианон с Хеопсом писали, как я понял:)
Делай вывод из двух постов сразу и плюс из того, что нужно от таблиц и как организован сервер.

   
 
 автор: ddhvvn   (20.07.2007 в 18:48)   письмо автору
 
   для: Vertex   (20.07.2007 в 18:13)
 

>книжку как раз Трианон с Хеопсом писали, как я понял:)
>Делай вывод из двух постов сразу и плюс из того, что нужно от таблиц и как организован сервер.


При всем моем уважении к Трианону, смею заметить, что в написании книги он не участвовал...

   
 
 автор: Vertex   (20.07.2007 в 18:50)   письмо автору
 
   для: ddhvvn   (20.07.2007 в 18:48)
 

значит я ошибся, прошу прощения., я тут всего 2 дня. Но ник cheops в примерах этой книги был это точно:) Там, где рассказывалось про регистрацию и работу сессий. Ещё раз прошу прощения за мою ошибку.

   
 
 автор: Trianon   (20.07.2007 в 19:37)   письмо автору
 
   для: Vertex   (20.07.2007 в 18:13)
 

>книжку как раз Трианон с Хеопсом писали, как я понял:)
Нет.
Я вообще не вхожу в группу softtime.

   
 
 автор: Ralph   (20.07.2007 в 18:26)   письмо автору
 
   для: 1999   (20.07.2007 в 18:03)
 

Одни говорят,что лучше спорткары,другие-что лучше джипы-кому верить?...Все зависит от того,что нужно ИМЕННО вам.Если я к примеру-рядовой программист,меня не особо интересуют всякие навороты и мои данные не настолько объемны и важны,чтобы их утеря привела к катастрофе,а скорость и поддержка полнотекста не помешают,я для себя выбрал MyISAM...Если вы работаете с серьезными важными проектами и вы серьезный программист (тогда правда вы бы не задавали наверно этот вопрос :) )-выбирайте InnoDB

   
 
 автор: cheops   (20.07.2007 в 18:58)   письмо автору
 
   для: Ralph   (20.07.2007 в 18:26)
 

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

   
 
 автор: Trianon   (20.07.2007 в 19:56)   письмо автору
 
   для: Ralph   (20.07.2007 в 18:26)
 

Я не очень понимаю, что значит серьезный программист или администратор.

Опытный разработчик выберет не конкретно MyISAM или конкретно InnoDB.
Он выберет движок (а вероятнее всего и весь сервер) согласно цене и сложности решаемых задач.
В ситуациях особо крупных коммерческих проектов и проектов с жесткой транзакционной логикой это скорее всего будет Oracle.
В случаях потребности львиной доли Web-сайтов это будет MySQL/MyISAM
Вероятно некая промежуточная ниша (когда деньги надо экономить а транзакции нужны)
придется и на MySQL/InnoDB
Опять же если заказчик (или условия функционирования клиентов - например, терминалы прайсчекеры в гипермаркетах) будет требовать .asp-технологию , что-то отхватит и MSSQL.
А если весь проект нужно уместить на одной домашней/офисной машинке - не исключено, что разработчик обойдется MS ACCESS.

   
 
 автор: cheops   (20.07.2007 в 18:53)   письмо автору
 
   для: 1999   (20.07.2007 в 18:03)
 

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

   
 
 автор: 1999   (21.07.2007 в 18:20)   письмо автору
 
   для: cheops   (20.07.2007 в 18:53)
 

спасибо

   
 
 автор: Trianon   (20.07.2007 в 19:33)   письмо автору
 
   для: 1999   (20.07.2007 в 18:03)
 

>по посту Trianon'а делаю вывод что MyISAM лучше
>по посту Vertex'а - лучше InnoDB
>кому верить?

Это Ваш вывод. Я такого не говорил.

Вы указали что есть моменты, в которых MyISAM проигрывает InnoDB - а я привел те моменты, где он выигрывает.

   
 
 автор: Ralph   (20.07.2007 в 22:21)   письмо автору
 
   для: Trianon   (20.07.2007 в 19:33)
 

Ну а я прошу прощения,особым опытом и интеллектом не блещу,посему сформулировал ответ чисто на уровне своего IQ,пусть возможно и некорректно :-D

P.S. Зато благодаря моему глупому посту как вам все понятно,подробно и обширно разъяснили :-D

   
 
 автор: stas1987   (23.07.2007 в 00:14)   письмо автору
 
   для: Ralph   (20.07.2007 в 22:21)
 

А как вообще понимать, что такое каскадное удаление и транзакации. (Вопрос может показаться глупым, но у меня еще нет сильного опыта в MYSQL)

   
 
 автор: cheops   (23.07.2007 в 11:02)   письмо автору
 
   для: stas1987   (23.07.2007 в 00:14)
 

Допустим у вас имеется две таблицы
Каталог
Позиции
В каждом каталоге может быть несколько позиций. Если таблицы связаны внешним ключом (FOREIGN KEY), удаление или обновление записи из каталога приводит к автоматическому удалению или обновлению записей из таблицы позиций. Без этого приходится использовать несколько запросов.

   
 
 автор: Prihod   (23.07.2007 в 11:16)   письмо автору
 
   для: cheops   (23.07.2007 в 11:02)
 

Что то я не пойму следующее высказывание :
Таблицы типа InnoDB надёжнее MyISAM и рушатся при достижении объёма в несколько ГБ
Как это InnoDB надежнее если они рушатся при достижении объёма в несколько ГБ ?
Или речи шла о MyISAM ?

   
 
 автор: cheops   (23.07.2007 в 11:19)   письмо автору
 
   для: Prihod   (23.07.2007 в 11:16)
 

Здесь "не" пропущено :))) MyISAM обычно рушиться в районе 10-20 Гб, для InnoDB сообщается о реально работающих терабайтных базах данных.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования