<MyRusakov.ru />

Создание движка на PHP и MySQL 2.0

Создание движка на PHP и MySQL 2.0

Видеокурс "Создание движка на PHP и MySQL 2.0" научит Вас создавать профессиональные движки для сайтов на PHP и MySQL с использованием ООП и паттерна MVC.

В курсе разобрана вся теория по структуре движка: как всё устроено, какие должны быть объекты, какая у них иерархия и как они взаимодействуют между собой.

В практической части будет создан движок с чистого листа. Будет создано ядро, все адаптеры, все вспомогательные классы, а также классы для работы с объектами базы данных. И чтобы курс был максимально полезным, будет создан движок для сайта MyRusakov.ru.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Движки баз данных.

Движки баз данных.

Всем привет! Наверняка, вы, создавая таблицы в базе данных, видели такие надписи, как MyISAM или InnoDB. Возможно, вы даже знаете, что это такое, но вот когда что выбирать? Об этом мы сегодня и поговорим.

Движок базы данных - это способ хранения данных.

Существуют самые разные движки баз данных - MyISAM, InnoDB, Memory, Archive, CSV, DBD, Federated, Blackhole.

InnoDB

Это многофункциональный движок, который поддерживает большинство функций: транзакции, все ограничения, внешние ключи, связи таблиц и другое, но НЕ поддерживает полнотекстовый индекс. Данный движок в основном направлен на выборку данных, а не на вставку, следовательно, используйте его там, где вам чаще всего нужно будет быстро что-то выбрать, а не вставить. Или там, где вам нужен какой-то функционал, который не поддерживают другие движки.

MyISAM

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

Archive

Из названия понятно, для чего нужен этот движок. Он хранит данные в виде ZIP архива. Размер таблицы, работающей на данном движке, будет очень мал. Однако, из этого следует, что изменение данных будет ОЧЕНЬ медленным. Выборка же данных примерно как у движка MyISAM. У этого движка нет ограничения Primary Key, транзакций и прочего. Основное предназначение данного движка для данных, которые никогда или очень редко меняются. Например, справочники.

CSV

Данные в данном движке хранятся в таком виде:

value1,value2,value3

value1,value2,value3

Т.е. каждая новая запись с новой строки, а столбцы разделяются запятой.

В основном данный движок предназначен для совместимости со старыми mainframe записями.

Внешнего ключа нет, транзакций нет, полнотекстового индекса нет, primary key, unique key есть.

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

BDB

Используется для совместимости с сервером BerkeleyDB. Тоже врядли он вам понадобится.

Memory

Данный движок хранит все данные в оперативной памяти сервера. На диске он ничего не хранит.

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

Рекомендуется для хранения временных таблиц.

Federated

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

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

Blackhole

Очень интересный движок. Его название переводится как "черная дыра". И это не просто так. Если вы попробуете создать таблицу на этом движке, а потом что-то выбрать из нее, то увидите Empty set. Все, что записывается в таблицу на движке Blackhole, сразу уничтожается.

Данный движок используется для отладки.

Заключение

Итак, надеюсь, что теперь для вас такое словосочетание, как "движки баз данных" не будет просто пустым звуком. Конечно, мы разобрали здесь не все движки, которые существуют у баз данных, но самые распространенные я описал. Выбирайте тот, который лучше подходит под ваши задачи. Спасибо за внимание и удачного проектирования баз данных! :)

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (2):

kruty kruty 15.07.2014 20:54:02

Я б краще навчив новачків ставити MariaDB чи Percona. Там нема того. що з цього рідко використовується, але зате є ефективніші движки. Так, наприклад XtraDB - ефективний форк InnoDB, там є патчі від самого гугла і т.д Швидкість набагато краща і менше навантаження. А щодо BerkeleyDB я використовую memcachedb. Це memcache i berkeleyDB одночасно. Точніше, зберігається інформація в 2, а для швидкості кешується в 1. А щодо Archive - то, блін, я таке теж думав зробити, а воно є)

Ответить

ivan.ratkevich@mail.ru ivan.ratkevich@mail.ru 27.10.2016 08:44:55

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

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.