Storage engines

Storage engines в MySQL.

Иногда мне задают вопрос, что такое storage engine в MySQL? Storage engine в MySQL – это специальные компоненты (можно сказать еще драйверы), которые позволяют выполнять различные SQL операции на таблицах разного типа. Storage engines часто переводят на русский, как “движки”. Хотя лично мне такой перевод не нравится. Существует множество различных storage engines, созданных как разработчиками классического MySQL сервера, так и сторонними разработчиками. В настоящее время, начиная с версии сервера 5.5, в качестве storage engine по умолчанию используется InnoDB. До этого по умолчанию использовался MyISAM.

Continue reading

Deadlocks

Взаимные блокировки (Deadlock).

Взаимная блокировка или deadlock – ситуация в многопользовательской СУБД, когда две различные транзакции находятся в состоянии бесконечного ожидания ресурсов, занятых этими же транзакциями. InnoDB обнаруживает такие взаимные блокировки и прерывает одну из транзакций, чтобы дать завершиться другой транзакции.

Continue reading

Блокировки в MySQL

Блокировки (locks).

Механизм блокировок (locks) используется в базах данных для того, чтобы обеспечить последовательный доступ к изменению одинаковых данных различным клиентам. Другими словами с помощью блокировок обеспечивается, чтобы в конкретный момент времени только одна транзакция могла изменять указанные данные. Без какого-либо механизма блокировок в базе данных был бы невозможен многопользовательский режим. Иначе как, к примеру, предотвратить одновременное изменений одной и той же строки разными пользователями. Способы реализации механизма блокировок в СУБД различных производителей могут существенно отличаться.

Continue reading