sql >> Databáze >  >> RDS >> Mysql

Zamykání stolu pomocí režimu spánku

Musíte použít pesimistické zamykání, kterého lze dosáhnout pomocí

setLockMode(String alias, LockMode lockMode) 

na dotaz a použijte LockMode.UPGRADE .

Viz Query.setLockMode

To však jistě zabije škálovatelnost a výkon, pokud na této tabulce děláte hodně přístupu. Je lepší použít sekvenci nebo jinou strategií je vytvořit službu pro přidělování čísel (např. SSB), která zachytí 100 čísel najednou, aktualizuje databázi a rozdá je. To vám ušetří 198 přístupů k databázi.

AKTUALIZACE:

Budete také muset mírně upravit design stolu. Je lepší mít jeden řádek se známým ID a číslo, které zvyšujete, uložit do jiného sloupce. Pak byste měli aktualizovat řádek spíše než odstraňovat starý řádek a přidávat nový. V opačném případě nebude strategie zamykání řádků fungovat.

AKTUALIZACE 2:

OP zjistil, že následující funguje:

session.get(class.Class, id, lockOption)



  1. Jak nastavím připojovací řetězec pro databázi MySQL v projektu C# bez použití dialogových oken?

  2. 5 Microsoft Access Tipy a triky

  3. Náhodný PRIMÁRNÍ KLÍČ pro Innodb

  4. Změňte číslo data aplikace Excel na datum Oracle