MariaDB и тразакции

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

MariaDB и тразакции

Непрочитанное сообщение Gamerman » 2012-06-13 10:55:55

Использую тип Aria. Хочу сделать так, что пока не будет COMMIT, чтобы другие процессы ничего не видели из изменений. И если отвалилась сессия, то чтобы ничего не сохранилось.
Делаю так:

Код: Выделить всё

SET AUTOCOMMIT=0;
START TRANSACTION;
insert into logs set username='3333333';
Но другая сессия уже видит эти изменения. Что еще нужно сделать и работает ли оно в принципе?
Глюк глюком вышибают!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: MariaDB и тразакции

Непрочитанное сообщение Gamerman » 2012-06-15 11:38:34

http://linux.yaroslavl.ru/docs/www/mysq ... ad_example
Допустим, вы используете уровень изоляции, установленый по умолчанию - REPEATABLE READ. При выполнении согласованного чтения (т.е. обычного оператора SELECT) InnoDB определяет для транзакции момент времени, по состоянию на который запросу будет предоставляться информация из базы данных. Таким образом, если транзакция удаляет строку и фиксирует это изменение после назначенного момента времени, то вы не увидите, что строка была удалена. Это справедливо также для вставок и обновлений.

Чтобы такой момент времени ``передвинуть вперед'', нужно зафиксировать транзакцию, а затем выполнить новую команду SELECT.

Это называется многовариантным контролем совпадений.

Пользователь A Пользователь B

SET AUTOCOMMIT=0; SET AUTOCOMMIT=0;

время
| SELECT * FROM t;
| пустой набор данных
| INSERT INTO t VALUES (1, 2);
|
v SELECT * FROM t;
пустой набор данных
COMMIT;
SELECT * FROM t;
пустой набор данных;

COMMIT;

SELECT * FROM t;
---------------------
| 1 | 2 |
---------------------

Таким образом, пользователь A увидит строку, вставленную пользователем B только после того, как B зафиксирует вставку, и A зафиксирует свою собственную транзакцию, чтобы момент времени передвинулся на позицию, находящуюся после фиксации, произведенной пользователем B.
А у меня второй пользователь видит сразу данные.
Глюк глюком вышибают!

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: MariaDB и тразакции

Непрочитанное сообщение FiL » 2012-06-19 6:35:14

A то, что у тебя Aria, а в куске хелпа, что ты привел InnoDB тебя не смущает?

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: MariaDB и тразакции

Непрочитанное сообщение Gamerman » 2012-06-19 9:07:33

Чесно говоря смущает. Но так как встречал, что Ария поддерживает транзакции, то я считал что такие в том числе.
Или такие она не поддерживает? Или он (движок) :)
Глюк глюком вышибают!

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: MariaDB и тразакции

Непрочитанное сообщение FiL » 2012-06-20 2:52:16

Я MariaDB не юзал. Судя по описанию движка Aria (я, правда, весьма вскольз просмотрел доки) нихрена он не поддерживает транзакций.

Аватара пользователя
Gamerman
капитан
Сообщения: 1723
Зарегистрирован: 2009-05-17 21:01:23
Откуда: Украина, Ужгород - Днепр
Контактная информация:

Re: MariaDB и тразакции

Непрочитанное сообщение Gamerman » 2012-06-20 10:55:56

У меня сложилось мнение аналогичное.
Глюк глюком вышибают!