Что такое движок базы данных
Database engine
Database engine, storage engine (движок базы данных) — компонент СУБД, управляющий базами данных, или библиотека, подключаемая к программам и дающая им функции СУБД.
СУБД использует движок для хранения данных в файлах и организации сетевого интерфейса, позволяющего клиентам СУБД работать по клиент-серверной модели. Обычно СУБД позволяют манипулировать данными и структурами БД с помощью языка SQL, при этом интерпретатор языка SQL обычно является компонентом СУБД, а не движка БД.
Библиотека позволяет программе использовать определённый формат файлов баз данных для манипулирования данными. В более сложном случае, она позволяет нескольким программам работать с общими файлами БД одновременно, используя те или иные механизмы блокировок.
Некоторые СУБД позволяют одновременно использовать несколько систем хранения данных(для разных БД). Например, MySQL позволяет использовать системы хранения данных: InnoDB, MyISAM, NDB и др.
Наиболее известные движки баз данных
Имя | Возможности | Недостатки | СУБД | Форматы файлов |
---|---|---|---|---|
DBM | ruby механизм для хранения строк в файле как в хеше по принципу пар: ключ-значения | скорость, некомпактность | — | |
Aria | ||||
BlitzDB | ||||
Falcon | ||||
SQLite | Самостоятельная библиотека (встраиваемая) | |||
InnoDB | MySQL | |||
MyISAM | Не поддерживает ACID; потабличная блокировка | MySQL | ||
NDB | Поддержка транзакций, распределенная работа | MySQL | ||
Microsoft Jet Database Engine (англ.) | Microsoft Access | |||
XtraDB | ACID | MySQL, MariaDB, Percona |
Литература
Полезное
Смотреть что такое «Database engine» в других словарях:
Database engine — A database engine (or storage engine ) is the underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database. Most database management systems include their own… … Wikipedia
database engine — noun The underlying component that a database management system uses to create, retrieve, update and delete data … Wiktionary
Database engine tuning advisor — The database engine tuning advisor is a tool for Microsoft SQL Server that enables database tuning. It can improve performance for query by tuning the indexes, creating, modifying and deleting partition and or indexes. It can be configured to… … Wikipedia
Microsoft Jet Database Engine — This article is about JET Red used in Microsoft Access. For the JET Blue ISAM implementation, see Extensible Storage Engine. The Microsoft Jet Database Engine is a database engine on which several Microsoft products have been built. A database… … Wikipedia
Borland Database Engine — BDE redirects here. For the dissociation energy of a chemical bond, see Bond dissociation energy. Borland Database Engine (BDE) is the Windows based core database engine and connectivity software behind Borland Delphi, C++Builder, IntraBuilder,… … Wikipedia
XFLAIM Database Engine — Infobox Software name = XFLAIM caption = latest release version = latest release date = operating system = Cross platform genre = Development Library license = GPL website = [http://developer.novell.com/wiki/index.php/FLAIM XFLAIM] TOC… … Wikipedia
Panorama (database engine) — Panorama is a database engine and development environment for Macintosh and Microsoft Windows. OverviewPanorama is a product of ProVUE Development. According to its owner Jim Rea, ProVUE is the oldest software company (save Microsoft) developing… … Wikipedia
Borland Database Engine — Die Borland Database Engine (kurz BDE) ist eine universelle Schnittstelle zum Zugriff auf relationale Datenbanken, die von der Firma Borland für Windows Systeme entwickelt wurde. Sie bietet Zugang zu Desktop Datenbanken wie Paradox, dBASE/FoxPro… … Deutsch Wikipedia
Database — A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality (for example, the availability of rooms in hotels), in a way that supports… … Wikipedia
Database management system — A database management system (DBMS) is a software package with computer programs that control the creation, maintenance, and the use of a database. It allows organizations to conveniently develop databases for various applications by database… … Wikipedia
Движки баз данных.
Всем привет! Наверняка, вы, создавая таблицы в базе данных, видели такие надписи, как MyISAM или InnoDB. Возможно, вы даже знаете, что это такое, но вот когда что выбирать? Об этом мы сегодня и поговорим.
InnoDB
Это многофункциональный движок, который поддерживает большинство функций: транзакции, все ограничения, внешние ключи, связи таблиц и другое, но НЕ поддерживает полнотекстовый индекс. Данный движок в основном направлен на выборку данных, а не на вставку, следовательно, используйте его там, где вам чаще всего нужно будет быстро что-то выбрать, а не вставить. Или там, где вам нужен какой-то функционал, который не поддерживают другие движки.
MyISAM
Движок MyISAM направлен на быстрое добавление или изменение данных, однако, он не оптимизирован на выборку, так что используйте его там, где вам нужно быстро вставлять, изменять, удалять данные, но не выборка. Также, данный движок не поддерживает внешний ключ и транзакции, но поддерживает блокировки и полнотекстовый индекс.
Archive
Из названия понятно, для чего нужен этот движок. Он хранит данные в виде ZIP архива. Размер таблицы, работающей на данном движке, будет очень мал. Однако, из этого следует, что изменение данных будет ОЧЕНЬ медленным. Выборка же данных примерно как у движка MyISAM. У этого движка нет ограничения Primary Key, транзакций и прочего. Основное предназначение данного движка для данных, которые никогда или очень редко меняются. Например, справочники.
Данные в данном движке хранятся в таком виде:
Т.е. каждая новая запись с новой строки, а столбцы разделяются запятой.
В основном данный движок предназначен для совместимости со старыми mainframe записями.
Внешнего ключа нет, транзакций нет, полнотекстового индекса нет, primary key, unique key есть.
Скорость выборки примерно как у MyISAM. Врядли вам когда-нибудь придется его использовать.
Используется для совместимости с сервером BerkeleyDB. Тоже врядли он вам понадобится.
Memory
Данный движок хранит все данные в оперативной памяти сервера. На диске он ничего не хранит.
Данный движок очень быстр как на запись, изменение, удаление данных, так и на их выборку. Однако, вы должны понимать, что данные очень легко потерять.
Рекомендуется для хранения временных таблиц.
Federated
Данный движок используется для создания кластерных решений. Это когда несколько серверов подключаются к одному серверу, на котором хранится база данных с этим движком, и каждый из этих серверов считает эту базу данных своей.
Скорость будет просто огромная, но вы должны понимать, что обычным сайтам это не нужно и используется только на очень высоконагруженных проектах. Плюс ко всему, данный движок является платным.
Blackhole
Очень интересный движок. Его название переводится как «черная дыра». И это не просто так. Если вы попробуете создать таблицу на этом движке, а потом что-то выбрать из нее, то увидите Empty set. Все, что записывается в таблицу на движке Blackhole, сразу уничтожается.
Данный движок используется для отладки.
Заключение
Итак, надеюсь, что теперь для вас такое словосочетание, как «движки баз данных» не будет просто пустым звуком. Конечно, мы разобрали здесь не все движки, которые существуют у баз данных, но самые распространенные я описал. Выбирайте тот, который лучше подходит под ваши задачи. Спасибо за внимание и удачного проектирования баз данных! 🙂
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Комментарии ( 2 ):
Михаил, доброго времени суток. В своих курсах Вы рекомендуете использовать MyISAM. Подскажите, пожалуйста, для реализации соцсети имеет ли смысл создать базу на InnoDB с использованием внешних связей. Какие могут быть нюансы использования InnoDB кроме описанных в Вашей статье?
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.
MySQL движки хранения данных
Вольный перевод: MySQL Storage Engines
Автор: Mike Peters
Одна из великолепных возможностей MySQL, отличная от бесплатности, широкой поддержки и быстроты, заключается в выборе различных движков хранения данных (storage engines) для различных таблиц.
Что-же такого великолепного в обладании всеми этими вариантами?
Каждый движок хранения данных полностью различен и спроектирован для конкретных нужд приложений.
Не зацикливаясь на одном движке (как Oracle), Вы тем самым можете оптимизировать и выбирать лучший инструмент для своей работы.
Совет: Хорошо спроектированное приложение, активно использующее MySQL, должно использовать различные движки хранения данных для различных таблиц. Если Вы все еще завязли на MyISAM таблицах, может теперь стоит, что-то пересмотреть.
Обзор движков хранения данных MySQL
MyISAM: Движок по умолчанию. Не поддерживает транзакций, средняя надежность хранения данных. Превосходная производительность чтения данных для интенсивных приложений. Большинство веб сервисов и хранилищ данных активно используют MyISAM.
HEAP: Все в памяти. Очень быстрый поиск данных, однако все они хранятся только в памяти и будут потеряны при остановке сервера. Великолепно подходит для временных таблиц.
Archive: Используется для хранения больших объемов данных без индексов, занимая меньший размер.
Merge: Коллекция MyISAM таблиц логически объединенных вместе для единого представления.
InnoDB: Транзакционный тип движка, применяемый при интенсивных операциях записи, спасибо возможности блокировки уровня строк таблицы. Великолепная восстанавливаемость и высокая надежность хранения данных. Движок InnoDB был приобретен Oracle в 2005 году.
Что-бы лучше понять уникальные характеристики каждого движка хранения данных, посмотрите на эту «магическую» диаграмму:
Примеры:
Ниже приведены несколько примеров использования наиболее подходящих движков хранения для различных задач:
Важные замечания по MyISAM таблицам:
Важные замечания по HEAP/Memory таблицам:
Пока этот тип таблиц предлагает супер быстрый возврат данных, который работает только для небольших временных таблиц.
Если Вы загружаете слишком большие объемы данных в Memory таблицы, MySQL начинает свопировать информацию на диск и тем самым Вы теряете все преимущества Memory движка.
Важные замечания по InnoDB таблицам:
Расширяемость
Для активно-читающей (read-heavy) среды, используйте NDB кластер или установите репликации для n MyISAM ведомых read-only машин.
Для активно-пишущей (write-heavy) среды, InnoDB с активно/пассивными репликациями будет лучшим типовым решением. Но Вы можете поэкспериментировать с NDB кластером. NDB кластер обычно медленнее чем InnoDB в операциях с активной записью, но он предлагает наивысший уровень доступности.
Движок базы данных
Database engine — англоязычный термин, соответствующий полуформальному русскоязычному определению «движок базы данных». Синоним: storage engine.
Движок может быть самостоятельным, оформленным в виде библиотеки, подключаемой к программам. Это позволяет программе использовать определённый формат файла базы данных. В более сложном случае, это позволяет нескольким программам работать с одним файлом БД, используя механизм блокировки, предоставляемый движком БД.
С другой стороны, движок БД является основным компонентом СУБД. В этом смысле СУБД — это программа, использующая движок БД для хранения данных в файлах и предоставляющая сетевой интерфейс, позволяющий клиентам СУБД работать по клиент-серверной модели. Обычно СУБД позволяют манипулировать данными и структурами БД с помощью языка
Некоторые СУБД позволяют одновременно использовать несколько движков (для разных БД). Например, InnoDB,
Наиболее известные движки баз данных
Полезное
Смотреть что такое «Движок базы данных» в других словарях:
Движок — Эта статья о компьютерном термине; другие значения: Двигатель. У этого термина существуют и другие значения, см. Лопата#Виды лопат. Движок (жаргонизм от англ. engine мотор, двигатель) выделенная часть программного кода для… … Википедия
Движок (программа) — Движок (жаргонизм от en. engine мотор, двигатель) выделенная часть программного кода для реализации конкретной прикладной задачи программа, часть программы, комплекс программ или библиотека, в зависимости от задачи и реализации. Как правило,… … Википедия
Движок (компьютерный сленг) — Это статья о компьютерном термине. См. также: Двигатель. Движок (жаргонизм от англ. engine мотор, двигатель) выделенная часть программного кода для реализации конкретной прикладной задачи программа, часть программы, комплекс программ или… … Википедия
Движок Doom — Doom engine Тип Игровой движок Разработчик id Software ОС изначально Лицензия изначально проприетарная, теперь GNU GPL Сайт … Википедия
Вики-движок — Вики движок набор программ, служащий для преобразования вики разметки в удобочитаемое представление на языке HTML. Содержание 1 DidiWiki 2 DokuWiki 3 dominoWiki 4 FlexWiki … Википедия
Database engine — Для термина «Движок» см. другие значения. В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Storage engine — Database engine англоязычный термин, соответствующий полуформальному русскоязычному определению «движок базы данных». Синоним: storage engine. Движок может быть самостоятельным, оформленным в виде библиотеки, подключаемой к программам. Это… … Википедия
Oracle Database — У этого термина существуют и другие значения, см. Oracle (значения). Oracle Database Тип … Википедия
Oracle (СУБД) — У этого термина существуют и другие значения, см. Oracle. Oracle Database Тип Объектно реляционн … Википедия
FileStream — FileStream это Хранилище данных, позволяющее связать MS SQL Server и файловую систему. Позволяет хранить данные на NTFS диске и управлять ими, используя движок базы данных. К данным предоставляется потоковый доступ. FileStream впервые… … Википедия
Что такое движки баз данных MySQL?
Я огляделся и обнаружил, что некоторые из движков MySQL являются innodb и MyISAM. Возможно, их еще немного. Мой вопрос в том, что это за движки баз данных?
каковы различия между различными движками MySQL? И что еще более важно, как я могу решить, какой из них использовать?
6 ответов:
Я лично всегда использую InnoDB, если мне нужно использовать MySQL. Он поддерживает транзакции и внешние ключи, а MyISAM-нет.
MySQL storage engines handle transaction-safe таблицы и nontransaction-safe таблицы тоже.
MySQL Storage Engines
вы не ограничены в использовании одного и того же механизма хранения для всего сервер или схема. Вы можете указать механизм хранения для любой таблицы. Например, приложение может использовать в основном таблицы InnoDB, с одной таблицей CSV для экспорта данных в электронную таблицу и несколькими таблицами памяти для временных рабочих пространств.
следующее сравнение из официального документа Mysql.
MyISAM и InnoDB являются наиболее часто используемыми двигателями.
MyISAM немного быстрее, чем InnoDB, и реализует полнотекстовый индекс, который весьма полезен для интеграции возможностей поиска. MyISAM не взаимодействует и не реализует ограничения внешнего ключа, что является серьезным недостатком.
но вы можете использовать лучшее из обоих и создать столы с различными механизмами хранения. Некоторые программы (WordPress, я думаю) используют Inno для большинства данных, таких как отношения между страницы, версии и т. д. Записи для записей содержат идентификатор, который ссылается на запись в отдельной таблице содержимого, использующей MyISAM. Таким образом, информация хранится в таблице, которая имеет лучшие возможности поиска, в то время как большинство других данных хранится в таблицах, которые обеспечивают целостность данных.
на вашем месте я бы выбрал Инно, потому что он самый надежный. Используйте MyISAM только для определенных целей, если вам нужно.
вы можете настроить свою базу данных для использования InnoDB по умолчанию, когда создание новых таблиц.
различные механизмы хранения доступны, есть несколько причин не использовать либо MyISAM или InnoDB типы двигателей. MyISAM будет делать в большинстве ситуаций, но если у вас есть большое количество обновлений или вставок по сравнению с вашими поисками и выбирает, то вы получите лучшую производительность из InnoDB engine. Чтобы получить максимальную производительность от InnoDB вам нужно настроить параметры для вашего сервера, в противном случае нет причин не использовать его.
механизм слияния является чрезвычайно эффективный способ запроса данных из нескольких идентично определенных таблиц. Механизм памяти является лучшим способом для выполнения большого количества сложных запросов к данным, которые были бы неэффективны для поиска на диске на основе двигателя. Движок CSV-это отличный способ экспортировать данные, которые могут быть использованы в других приложениях. BDB отлично подходит для данных, которые имеют уникальный ключ, к которому часто обращаются.
механизм хранения-это программный модуль, который система управления базами данных использует для создания, чтения и обновления данных из базы данных. Существует два типа механизмов хранения в MySQL: транзакционные и нетранзакционные.
для MySQL 5.5 и позже, механизм хранения по умолчанию InnoDB. Механизм хранения по умолчанию для MySQL до версии 5.5 был MyISAM. Выбор правильного механизма хранения является важным стратегическим решением, которое повлияет на будущее развитие. В в этом уроке мы будем использовать MyISAM, InnoDB, память и механизмы хранения CSV. Если вы новичок в MySQL и изучаете систему управления базами данных MySQL, то это не очень беспокоит. Если вы планируете производственную базу данных, то все становится сложнее.