Лекция
Привет, Вы узнаете о том , что такое mysql, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое mysql, myisam, innodb, индекс innodb, индекс myisam , настоятельно рекомендую прочитать все из категории MySql (Maria DB).
MyISAM — одна из основных (наряду с InnoDB) систем хранения данных в СУБД MySQL. Она основывается на принципах ISAM и обладает в сравнении с ним рядом полезных дополнений. Поддерживается с версий MySQL 3.x, до версий MySQL 5.5 являлась системой хранения по умолчанию. MyISAM имеет возможности по сжатию данных, по созданию полнотекстовых индексов. Однако не является устойчивой к сбоям и не выполняет требования ACID.
MariaDB имеет механизм хранения под названием Aria , который описывается как «безопасная альтернатива MyISAM».Однако разработчики MariaDB все еще работают над кодом MyISAM. Основное улучшение - это «Сегментированный ключевой кэш». Если он включен, кеш индексов MyISAM делится на сегменты. Это улучшает параллелизм, поскольку потокам редко требуется блокировать весь кеш.
В MariaDB MyISAM также поддерживает виртуальные столбцы .
InnoDB - это механизм хранения для системы управления базами данных MySQL и MariaDB . С момента выпуска MySQL 5.5.5 в 2010 году он заменил MyISAM как тип таблицы MySQL по умолчанию. Он предоставляет стандартные функции транзакций, совместимые с ACID , наряду с поддержкой внешнего ключа ( декларативная ссылочная целостность ). Он входит в стандартную комплектацию большинства двоичных файлов, распространяемых MySQL AB , за исключением некоторых версий OEM .
Описание | MyISAM | InnoDB |
Транзакционный движек?Транзакция (Transaction) — блок операторов SQL , который в случае ошибки в одном запросе, возвращается к предыдущему состоянию (Rollback), и только в случае выполнения всех запросов подтверждается (Commit) | Нет | Да |
Поддержка внешних ключейВнешние ключи — это способ связать записи в двух таблицах по определенным полям так, что при обновлении поля в родительской автоматически происходит определенное изменение поля в дочерней (дочернюю и родительскую выбираешь при создании ключа; точнее, создаешь ключ в дочерней, который ссылается на родительскую). | Нет | Да |
Блокировка.Блокировка на уровне строк, т.е. если процессу нужно обновить строку в таблице, то он блокирует только эту строку, позволяя другим обновлять другие строки параллельно | Блокировка на уровне таблиц | Блокировка на уровне строк |
Одновременные запросы к разным частям таблицы. | Медленнее | Быстрее |
При смешанной нагрузке в таблице (select/update/delete/insert) | Медленнее | Быстрее |
Операция Insert | Быстрее | Медленнее, ибо есть оверхед на транзакцию, но это цена надежности |
Если преобладают операции чтения (SELECT) | Работает быстрее | Работает медленнее |
DeadlockDeadlock — ситуация в многозадачной среде или СУБД, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, захваченных самими этими процессами. | Не возникают | Возможны. |
Поддержка полнотекстового поиска | Да | Нет (доступен начиная с версии MySQL 5.6.4) |
Запрос Count(*) | Быстрее | Медленнее |
Поддержка mysqlhotcopyУтилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или scp для быстрого получения резервной копии базы данных. | Да | Нет |
Файловое хранение таблиц | Каждой таблице отдельный файл | Данные при настройках по умолчанию хранятся в больших совместно используемых файлах |
Бинарное копировании таблиц?Табличные файлы можно перемещать между компьютерами разных архитектур и разными операционными системами без всякого преобразования. | Да | Нет |
Размер таблиц в БД | Меньше | Больше |
Поведение в случае сбоя | Крашится вся таблица | По логам можно все восстановить |
В случае хранения «логов» и подобного | Лучше | Хуже |
Механизм MyISAM использует B + Tree в качестве структуры индекса, а поле данных конечного узла хранит адрес записи данных. На следующем рисунке представлена схематическая диаграмма индекса MyISAM:
Здесь у нас есть три столбца в таблице. Предположим, мы используем Col1 в качестве первичного ключа. На рисунке выше показан первичный ключ таблицы MyISAM. Видно, что индексный файл MyISAM сохраняет только адрес записи данных. В MyISAM нет разницы в структуре между первичным индексом и вторичным ключом, за исключением того, что первичный индекс требует, чтобы ключ был уникальным, а ключ вторичного индекса может повторяться. Если мы построим вторичный индекс на Col2, структура этого индекса будет показана ниже:
Это сравнение известных движков баз данных для системы управления базами данных MySQL (СУБД). Механизм базы данных (или «механизм хранения») - это базовый программный компонент, который СУБД использует для создания, чтения, обновления и удаления (CRUD) данных из базы данных .
Name | Vendor | License | Transactional | Under active development | MySQL versions | MariaDB versions |
---|---|---|---|---|---|---|
Archive | Oracle | GPL | No | Yes | 5.0 - present | 5.1 - present |
Aria | MariaDB | GPL | No | Yes | None | 5.1 - present |
Berkeley DB | Oracle | AGPLv3 | Yes | No | ? - 5.0 | None |
BLACKHOLE | Oracle | GPL | No | Yes | 5.0 - present | 5.1 - present |
CONNECT | MariaDB | GPL | No | Yes | None | 10.0 - present |
CSV | Oracle | GPL | No | Yes | 5.0 - present | 5.1 - present |
Falcon | Oracle | GPL | Yes | No | ? | None |
Federated | Oracle | GPL | ? | No | 5.0 - present | ? |
FederatedX | MariaDB | GPL | Yes | No | None | ? - present |
InfiniDB | Calpont | GPL | Yes | No | None | None |
InnoDB | Oracle | GPL | Yes | Yes | 3.23 - present | 5.1 - present |
MEMORY | Oracle | GPL | No | Yes | 3.23 - present | 5.1 - present |
Mroonga | Groonga Project | GPL | No | Yes | None | 10.0 - present |
MyISAM | Oracle | GPL | No | No | 3.23 - present | 5.1 - present |
MyRocks | GPLv2 | Yes | Yes | None | 10.2 - present | |
NDB | Oracle | GPLv2 | Yes | Yes | ? | None |
OQGRAPH | Oracle | GPLv2 | No | No | None | 5.2 - present |
S3 | MariaDB | GPL | No | Yes | None | 10.5 - present |
SEQUENCE | MariaDB | GPL | No | Yes | None | 10.0 - present |
Sphinx | Sphinx Technologies Inc. | GPL | No | No | None | 5.2 - present |
SPIDER | Kentoku Shiba | GPL | Yes | Yes | None | 10.0 - present |
TempTable | Oracle | GPL | No | Yes | 8.0 - present | None |
TokuDB | Percona | Modified GPL | Yes | No | None | 5.5 - present |
XtraDB | Percona | GPL | Yes | Yes | None | 5.1 - 10.1 |
Выводы из данной статьи про mysql указывают на необходимость использования современных методов для оптимизации любых систем. Надеюсь, что теперь ты понял что такое mysql, myisam, innodb, индекс innodb, индекс myisam и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории MySql (Maria DB)
Комментарии
Оставить комментарий
Базы данных - MySql (Maria DB)
Термины: Базы данных - MySql (Maria DB)