» »

[MariaDB] Dva "tipa" DELETA-anja v transakcijah in zmanjšanje možnosti za mrtvi zaklep.

[MariaDB] Dva "tipa" DELETA-anja v transakcijah in zmanjšanje možnosti za mrtvi zaklep.

HotBurek ::

Dobro jutro, fantje in dekline.

Evo, nov dan, nov izzv.

V prejšnem mesecu (natančneje včeraj zvečer) sem v dnevniških zapisih zasledil sledeč zapis:

MySQLdb._exceptions.OperationalError: (1213, 'Deadlock found when trying to get lock; try restarting transaction')

Odločil sem se, da bom na klientu implementiral "retry few times on fail". Vsaj tako bi naj bila sugerirala dokumentacija.

... MySQL documentation suggest that in case of a deadlock the client should retry automatically. you can add this logic to your client code. (Say, 3 retries on this particular error before giving up).

Vir: https://stackoverflow.com/questions/233...

A ta isti vir navaja nekaj drugega, kar me dejansko zanima.

Ali je res, da če imamo transakcijo, v kateri brišemo podatke (ukaz DELETE), in bi radi zmanjšal pojavnost mrtvega zaklepa, da je bolje izbrati opcijo B napram opciji A. In če, zakaj?

Opcija A:

DELETE FROM `tabela`
WHERE `country` = 'xk';

Opcija B

DELETE FROM `tabela`
WHERE `id` IN (
    SELECT `id`
    FROM `tabela`
    WHERE `country` = 'xk'
    ORDER BY `id` ASC
);


Sicer pa sta na zgoraj omenjenem viru dva komentarja, ki sta si malo da ne nasprotujča:

A delete based on a select on a huge table is very slower than a simple delete

Thanks you so much, dude. The 'sort statements' tip fixed my dead lock issues.

V vednost. V mojem primeru brišem nekaj 10 vrstic.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
  • spremenilo: HotBurek ()

OracleDev ::

Večji k je SQL bolj je kompliciran. Simpl.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[baze podatkov] - Kako začeti?

Oddelek: Programiranje
292975 (1962) pegasus
»

sql

Oddelek: Programiranje
6988 (693) Miha 333
»

SQL vprasanje (strani: 1 2 )

Oddelek: Programiranje
688243 (4922) BivšiUser2
»

problem v C#

Oddelek: Programiranje
211955 (1670) dvojka
»

Izvorna koda mojega par dnevnega dela; ce jo malo pokomentirate :) (strani: 1 2 )

Oddelek: Programiranje
606377 (4722) Microsoft

Več podobnih tem