Что такое движки баз данных MySQL?



Я огляделся и обнаружил, что некоторые из движков MySQL являются innodb и MyISAM. Возможно, их еще немного. Мой вопрос в том, что это за движки баз данных?



каковы различия между различными движками MySQL? И что еще более важно, как я могу решить, какой из них использовать?

1181   6  

6 ответов:

mysql> SHOW ENGINES;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+

Я лично всегда использую InnoDB, если мне нужно использовать MySQL. Он поддерживает транзакции и внешние ключи, а MyISAM-нет.

MySQL storage engines handle transaction-safe таблицы и nontransaction-safe таблицы тоже.

MySQL Storage Engines

  1. InnoDB

    • MySQL default Storage Engine (для v5.7) и самый универсальный механизм хранения.
    • транзакционно-безопасный (совместимый с кислотой) механизм хранения
    • обеспечивает фиксацию, откат и аварийное восстановление возможности
    • хранит кластеризованные индексы данных для уменьшения ввода / вывода
    • поддерживает ограничения внешнего ключа
  2. MyISAM

    • обеспечивает блокировку на уровне таблицы
    • наиболее полезно в рабочих нагрузках только для чтения или чтения в основном в конфигурациях веб-сайтов и хранилищ данных.
    • хорош для таблиц с небольшим след
    • также известный как двигатель куча.
    • все данные, хранящиеся в оперативной памяти
    • хорошо подходит для сред, требующих быстрого поиска некритических данных.
  3. CSV

    • таблицы представляют собой текстовые файлы со значениями, разделенными запятыми. (я.е КШМ)
    • хорошо импортировать в CSV формат
    • легко обмениваться данными со скриптами и приложениями в формате CSV.
    • таблицы не индексированы
    • полезно на этапах импорта или экспорта
  4. архиве

    • столы компактны и неиндексированные
    • предназначен для хранения и извлечения исторических, архивных, или аудит данные
  5. черная дыра

    • принимает данные, но не хранит данные
    • запросы всегда возвращают пустой набор
    • полезно в конфигурациях репликации (здесь операторы DML отправляются на подчиненные серверы, но главный сервер не хранит данные.)
  6. NDB

    • также известный как NDBCLUSTER
    • кластерный компонент database engine
    • полезно для приложений, которые требуют высокой надежности и высокой доступности.
  7. слияние

    • полезно для логической группировки ряда одинаковых таблиц MyISAM
    • хорошо для сред VLDB, таких как хранилище данных.
  8. федеративных

    • обеспечивает возможность свяжите отдельные серверы MySQL для создания одной логической базы данных из физических серверов
    • хорошо для распределенных или данных mart сред.
  9. пример

    • "заглушка", которая ничего не делает
    • только таблицы могут быть созданы
    • никакие данные не могут быть сохранены в них или извлечены

вы не ограничены в использовании одного и того же механизма хранения для всего сервер или схема. Вы можете указать механизм хранения для любой таблицы. Например, приложение может использовать в основном таблицы InnoDB, с одной таблицей CSV для экспорта данных в электронную таблицу и несколькими таблицами памяти для временных рабочих пространств.

ссылки:

следующее сравнение из официального документа Mysql. enter image description here

MyISAM и InnoDB являются наиболее часто используемыми двигателями.

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

но вы можете использовать лучшее из обоих и создать столы с различными механизмами хранения. Некоторые программы (WordPress, я думаю) используют Inno для большинства данных, таких как отношения между страницы, версии и т. д. Записи для записей содержат идентификатор, который ссылается на запись в отдельной таблице содержимого, использующей MyISAM. Таким образом, информация хранится в таблице, которая имеет лучшие возможности поиска, в то время как большинство других данных хранится в таблицах, которые обеспечивают целостность данных.

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

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

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

механизм слияния является чрезвычайно эффективный способ запроса данных из нескольких идентично определенных таблиц. Механизм памяти является лучшим способом для выполнения большого количества сложных запросов к данным, которые были бы неэффективны для поиска на диске на основе двигателя. Движок CSV-это отличный способ экспортировать данные, которые могут быть использованы в других приложениях. BDB отлично подходит для данных, которые имеют уникальный ключ, к которому часто обращаются.

This Image provides an overview of some storage engines provided with MySQL:

механизм хранения-это программный модуль, который система управления базами данных использует для создания, чтения и обновления данных из базы данных. Существует два типа механизмов хранения в MySQL: транзакционные и нетранзакционные.

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

вы можете прочитать больше здесь:http://zetcode.com/databases/mysqltutorial/storageengines/

может быть, вы получите больше информации здесь: https://en.wikipedia.org/wiki/Database_engine

компонент database engine (или storage engine) - это базовый программный компонент, используемый системой управления базами данных (СУБД) для создания, чтения, обновления и удаления данных (CRUD) из базы данных. Большинство систем управления базами данных включают в себя собственный интерфейс прикладного программирования (API), который позволяет пользователю взаимодействовать со своим базовым движком без прохождения пользовательский интерфейс СУБД.

Comments

    Ничего не найдено.