Интернет магазин китайских планшетных компьютеров



Компьютеры - MyISAM - Недостатки

16 июня 2011


Оглавление:
1. MyISAM
2. Недостатки



  • Отсутствие самовосстановления по журналу при сбоях.
  • Отсутствие блокировок регионов, меньших, чем целые таблицы. Приводит к отсутствию масштабируемости, то есть к сильной деградации производительности с повышением нагрузки.
  • Отсутствие средств резервного копирования. Утилита mysqldump, предлагаемая для создания резервных копий, является не инструментом резервного копирования, а инструментом экспорта в текст. Для выполнения задачи с сохранением целостности базы данных mysqldump захватывает блокировку таблицы, приводя к полной остановке работы системы на все время своего исполнения. Останов процесса MySQL и создание копии инструментами копирования файлов из UNIX приводит к меньшему времени простоя системы. Особенно удачен для этого gzip в режиме минимальной компрессии, который при незначительной для современного оборудования нагрузке процессора снижает объём данных, подлежащих записи в полученный файл, и тем самым ускоряет операцию.
  • Слабая реализация сортировки, которой является клауза ORDER BY языка SQL при отсутствии подходящего индекса. MyISAM сортирует данные слиянием, с использованием qsort для первоначально сливаемых небольших регионов. Это требует не только крайне неоптимального по дисковому вводу/выводу создания на каждую операцию сортировки 2 временных файлов, растущих с нулевого размера, с работой с ними через неоптимальные вызовы fopen и fwrite, но и выделения sort buffer для каждого клиента MySQL. Размер sort buffer для достижения оптимальной производительности должен быть порядка сотен килобайт, что под большой нагрузкой приводит к полному исчерпанию не только кучи, но и пользовательского адресного пространства в 32-битных ОС семейства UNIX, и влечет за собой отказы вызовов malloc во всем коде MySQL, а не только в коде сортировки. Так как такие отказы далеко не всегда проверяются в коде, результатом может быть крах MySQL по сигналу SIGSEGV. Стоит отметить, что проблема с адресным пространством пользователя не присутствует в 64-битных операционных системах и на 2009 год большая часть выпускаемых серверов снабжена значительно большим объёмом памяти, чем 4 Гб, что способствует применению именно 64-битных систем для полного использования возможностей оборудования, поэтому этот недостаток в данный момент становится менее критичен.

Данные недостатки проявляются в заметной степени при нагрузке порядка 400 клиентов, исполняющих сложные запросы по базе данных размером 2-3 ГБ.

В более развитых реализациях нижнего уровня MySQL, таких как InnoDB, значительная часть данных проблем решена. Данные проблемы также могут решаться их учетом при разработке приложения, работающего с MySQL.



Просмотров: 2445


<<< MVCC
MySQL Workbench >>>