[mysql] autocommit doc

Maurog

не могу сообразить все ли верно в доке: http://dev.mysql.com/doc/refman/5.6/en/glossary.html#glos_au...
autocommit
A setting that causes a commit operation after each SQL statement. This mode is not recommended for working with InnoDB tables with transactions that span several statements. It can help performance for read-only transactions on InnoDB tables, where it minimizes overhead from locking and generation of undo data, especially in MySQL 5.6.4 and up. It is also appropriate for working with MyISAM tables, where transactions are not applicable.
тут реально речь о statements, а не о tables? если первое, то почему not recommended ?

mbolik1

Думаю надо понимать так: autocommit порушит тебе транзакцию которая должна состоять из нескольких запросов, поэтому и not recommended.

Maurog

autocommit порушит тебе транзакцию
не думаю, что так задумано
http://dev.mysql.com/doc/refman/5.6/en/commit.html
To disable autocommit mode implicitly for a single series of statements, use the START TRANSACTION statement:
....
With START TRANSACTION, autocommit remains disabled until you end the transaction with COMMIT or ROLLBACK. The autocommit mode then reverts to its previous state.
я это понимаю так, что при явном открытии транзакции флажок autocommit сбрасывается и не мешает закончить всю транзакцию. это вполне разумное поведение.

Bibi

о statements.
not recommended, потому что если включен autocommit, то будет уже не одна транзация, а несколько.
когда говоришь start transaction, autocommit выключается.

Maurog

not recommended, потому что если включен autocommit, то будет уже не одна транзация, а несколько.
я начинаю подозревать, что плохо владею английским
вот это предложение у меня вызывает вопрос:
This mode is not recommended for working with InnoDB tables with transactions that span several statements.
я его перевожу так:
Этот режим не рекомендуется использовать при работе с InnoDB таблицами с транзакциями, которые охватывают\используют несколько выражений (statements).
Или короче: если в транзакции несколько операций, то режим не рекомендуется использовать.
Вопрос: почему не рекомендуется? Ведь при явно начатой транзакции (start transaction) режим autocommit отключается (не должен влиять ни на логику, ни на производительность).
Оставить комментарий
Имя или ник:
Комментарий: