<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2015-02-09 18:50 GMT+01:00 Petr Messner <span dir="ltr"><<a href="mailto:petr.messner@gmail.com" target="_blank">petr.messner@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">V čem není InnoDB ACID, při nastavení patřičného isolation levelu?<br></blockquote><div><br></div><div><br></div><div>InnoDB má solidní bug v transakcích, kvůli kterému nesplňuje ACID. Neumí udělat rollback ALTERu, takže ALTER se autocommituje vždy, i když zbytek transakce se normálně rollbackuje. Dříve či později na to narazí každý, kdo dělá migrace databáze. V horším případě to skončí ztrátou dat a rozbitím databáze (osobní zkušenost).</div><div><br></div><div>Bug je již témeř 8 let nahlášen a nikdo ho evidentně neřeší: <a href="http://bugs.mysql.com/bug.php?id=28727">http://bugs.mysql.com/bug.php?id=28727</a></div><div><br></div><div>Honza</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>PM<span></span><br><br>Dne pondělí 9. února 2015 Jan Bednařík <<a href="mailto:jan.bednarik@gmail.com" target="_blank">jan.bednarik@gmail.com</a>> napsal(a):<div class=""><div class="h5"><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Jestli potřebuješ aplikaci, která je nezávislá na druhu databáze, použij SQLAlchemy, která ti poskytne abstrakci nad různými databázovými backendy.<div><br></div><div>Jinak na myisam i innodb je špatné to, že nejsou ACID a dříve nebo později tě někde pořádně vypečou. Jak už psal Honza Král, 99% problémů s databází je MySQL. Jestli neděláš jen nějaký hobby projektík pro sebe, použij raději PostgreSQL.</div><div><br></div><div>Honza</div><div><br><div class="gmail_extra"><br><div class="gmail_quote">2015-02-09 17:36 GMT+01:00 mtip <span dir="ltr"><<a>mtip@atlas.cz</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div>
<span style="font-family:'Courier New';font-size:9pt">Já tedy nevím, co je třeba na myisam špatného pro práci s penězi.<br>
1. Potřebuju aplikaci, která je více nezávislá na druhu databáze.<br>
2. Transakce pro write to neřeší, jedině read a tu vzhledem k možné době trvání zámku nechci použít        <br>
<br>
Nicméně už sem to vyřešil jednoduše viz tip Honzy:<span><br>
<br>
>A samozrejme, jako vzdy, je lepsi varianta bezzamkova:<br>
>"UPDATE Zaplaceno = 1 FROM platby WHERE id=%s AND Zaplaceno = 0"<br>
<br></span>
Mirek<br>
--------------------------------<br>
9. února 2015, 17:10:21, napsal jste:<br>
</span><span><table>
<tbody><tr>
<td width="10" bgcolor="#0000ff"><br>
</td>
<td width="742"><span style="font-family:'courier new';font-size:9pt">Transakce jsem použít nechtěl, protože databáze nemusí být innodb dokonce ani mysql.<br>
<br>
<br>
Takové databáze jsou pro aplikace pracující s penězi nejlepší. Už chybí jen náhodné mazání uložených dat. <br>
<br>
PM<br>
</span></td>
</tr>
</tbody></table>
</span></div>

<br>_______________________________________________<br>
Python mailing list<br>
<a>python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
<br>
Visit: <a href="http://www.py.cz" target="_blank">http://www.py.cz</a><br></blockquote></div><br></div></div></div>
</blockquote>
</div></div><br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:python@py.cz">python@py.cz</a><br>
<a href="http://www.py.cz/mailman/listinfo/python" target="_blank">http://www.py.cz/mailman/listinfo/python</a><br>
<br>
Visit: <a href="http://www.py.cz" target="_blank">http://www.py.cz</a><br></blockquote></div><br></div></div>