MySQL тъпо InnoDB
9 отговора
635 прегледа
MySQL тъпо InnoDB
Стигам до следния извод:
ако имаш база със 100 таблици от които
99 от тип InnoDB и 1 от тип MyISAM,
тогава транзакциите неработят в цялата база!!
Правилно ли съм открил топлата вода или още никой не се е сблъскал с този проблем?
Много тъпо от страна на MySQL-а....
asl-bg.com - шантаво като теб ;)
ако имаш база със 100 таблици от които
99 от тип InnoDB и 1 от тип MyISAM,
тогава транзакциите неработят в цялата база!!
Правилно ли съм открил топлата вода или още никой не се е сблъскал с този проблем?
Много тъпо от страна на MySQL-а....
asl-bg.com - шантаво като теб ;)
Re: MySQL тъпо InnoDB
Какво разбираш под "неработят"?
salle.online.bg/sig
salle.online.bg/sig
Редактирано от salle на
Re: MySQL тъпо InnoDB
Неработят - просто няма транзакции все едно всичките таблици са от тип MyISAM.
Дали аз бъркам нещо? Имаш ли база с двата типа таблици в която използваш транзакции (и си работят)?
asl-bg.com - шантаво като теб ;)
Дали аз бъркам нещо? Имаш ли база с двата типа таблици в която използваш транзакции (и си работят)?
asl-bg.com - шантаво като теб ;)
Re: MySQL тъпо InnoDB
Ами аз лично смятам, че ако някой е решил да прави подобно нещо с няколко вида таблици, ще трябва да си понесе и последствията. Ползваш InnoDB - имаш транзакции, не го ползваш - нямаш транзакции.
За конкретния твой случай, транзакциите ще засягат само InnoDB таблиците, но не съм 100 % сигурен, не ми е хрумвало да правя така.
За конкретния твой случай, транзакциите ще засягат само InnoDB таблиците, но не съм 100 % сигурен, не ми е хрумвало да правя така.
Re: MySQL тъпо InnoDB
Ако сам си правиш базата ок. Правиш ги всичките InnoDB и готово.
Но ако имаш (както е при мен) един скрипт който създава таблица от "стария" тип MyISAM в база с InnoDB таблици и хоп - изненада, транзакциите спират да работят. Върви се сети каква е причината.
Освен това аз държа да имам таблици от тип Heap. Трябва да пробвам дали и при тях се получава този гаден страничен ефект. Ако е така ще се наложи да ги преместя в отделна база.
Молбата ми към всички е, ако имате възможност да създадете таблица от тип Heap (или MyISAM) в база където всички други таблици са от тип InnoDB и да пробвате дали транзакциите продължават да работят.
Благодаря!
asl-bg.com - шантаво като теб ;)
Но ако имаш (както е при мен) един скрипт който създава таблица от "стария" тип MyISAM в база с InnoDB таблици и хоп - изненада, транзакциите спират да работят. Върви се сети каква е причината.
Освен това аз държа да имам таблици от тип Heap. Трябва да пробвам дали и при тях се получава този гаден страничен ефект. Ако е така ще се наложи да ги преместя в отделна база.
Молбата ми към всички е, ако имате възможност да създадете таблица от тип Heap (или MyISAM) в база където всички други таблици са от тип InnoDB и да пробвате дали транзакциите продължават да работят.
Благодаря!
asl-bg.com - шантаво като теб ;)
Редактирано от нeщacтeн на
Re: MySQL тъпо InnoDB
Значи пробвах го. InnoDB таблиците са си под транзакции, действат си върху тях. Ако изпълниш rollback, изписва съобщение, че не всички таблици ще бъдат засегнати от това. Данните въведени в InnoDB се rollback-ват, тези от MyISAM не. Съвсем логично струва ми се.
3.23.56-max-log
Slackware Linux
3.23.56-max-log
Slackware Linux
Re: само да добавя ...
Транзакциите работят:
1. Винаги!
2. Само за таблиците, които ги поддържат
1. AND 2.
Както чудесно ти отговори Noxie ако имаш транзакция, която променя няколко таблици от различен тип и направиш ROLLBACK ще получиш съобщение, че някои от таблиците не го поддържат. (в случай на COMMIT няма никакво значение)
salle.online.bg/sig
1. Винаги!
2. Само за таблиците, които ги поддържат
1. AND 2.
Както чудесно ти отговори Noxie ако имаш транзакция, която променя няколко таблици от различен тип и направиш ROLLBACK ще получиш съобщение, че някои от таблиците не го поддържат. (в случай на COMMIT няма никакво значение)
salle.online.bg/sig
Re: MySQL тъпо InnoDB
Noxie мерси за пробата и на salle за отговора. Значи при вас няма проблем. Все пак оставам със съмнения, че при голямо натоварване (таблици с над 1-2 милиона реда) транзакциите на mySQL-а не се държат прилично :) И се мъча да си обесня това поведение, затова и повдигнах въпроса. Продължавам да тествам и ще ви информирам, ако открия нещо интересно.
Поздрави!
asl-bg.com - шантаво като теб ;)
Поздрави!
asl-bg.com - шантаво като теб ;)
Re: Ама дай нещо конкретно ...
Кажи защо така смяташ? Дай някаква интифа за какво иде реч.
Ако е бъг да го оправим. На всичкото отгоре транзакциите по дефиниция или успяват (commit) или не (rollback). Не може да има такова животно като "не съвсем добра" транзакция.
salle.online.bg/sig
Ако е бъг да го оправим. На всичкото отгоре транзакциите по дефиниция или успяват (commit) или не (rollback). Не може да има такова животно като "не съвсем добра" транзакция.
salle.online.bg/sig
Re: MySQL тъпо InnoDB
Работи си в смесен режим без никакви грижи!
Да не би да забравяш да пуснеш BEGIN и след това COMMIT (или ROLLBACK)?
Имам точно такъв сценарий - една ДБ, повечето таблици са MyISAM, а няколко са BDB. Направил съм го така за да е по-икономично от към ресурси, а и MyISAM май имаха некои предимства (вече не помня точно какво четох из хелповете).
Та значи BDB таблиците ми са логически свързани и инфото което се вкарва в тях трябва или да влезе във всичките едновременно и успешно или изобщо да не влиза. До сега не съм имал никакви проблеми. Вярно - не съм ги подлагал на зверски натоварвания, но вярвам че ще издържат.

Да не би да забравяш да пуснеш BEGIN и след това COMMIT (или ROLLBACK)?
Имам точно такъв сценарий - една ДБ, повечето таблици са MyISAM, а няколко са BDB. Направил съм го така за да е по-икономично от към ресурси, а и MyISAM май имаха некои предимства (вече не помня точно какво четох из хелповете).
Та значи BDB таблиците ми са логически свързани и инфото което се вкарва в тях трябва или да влезе във всичките едновременно и успешно или изобщо да не влиза. До сега не съм имал никакви проблеми. Вярно - не съм ги подлагал на зверски натоварвания, но вярвам че ще издържат.