Keresés

Aktív témák

  • Sk8erPeter

    nagyúr

    válasz cucka #1916 üzenetére

    PazsitZ, cucka: köszönöm a válaszokat! :R

    PazsitZ:
    "Viszont, az innoDB támogat tranzakciókezelés, amire ha szükséged van, akkor szükséged van. :)"
    Na, most legalább egyben megtudtam azt is, hogy nem érdemes próbálkoznom MyISAM esetén PDO-val a PDO::beginTransaction(), illetve PDO::rollBack() (na meg PDO::commit()) metódusokkal. :( Pedig igencsak előnyös lenne, hogy amennyiben valami hiba lépett fel több bejegyzés létrehozási kísérlete során, vissza tudjam vonni egy sima rollBack-kel az egészet.
    Eszerint MyISAM storage engine-nél ne is próbálkozzak ilyesmivel, ugye?

    Ja, közben ezt találtam a phpMyAdmin átlátható felületén, hogy két tárolómotor támogatja a transactiont MySQL-ben:
    InnoDB Supports transactions, row-level locking, and foreign keys
    BerkeleyDB Supports transactions and page-level locking

    cucka:
    "Az innoDB támogatást be kell kapcsolni a MySQL-ben, alapból ki van kapcsolva."
    Köszönöm, közben megtaláltam a my.ini fájlban (Windows) a sort, amit ki kell kommentelni:
    # Use this option if you have a MySQL server with InnoDB support enabled
    # but you do not plan to use it. This will save memory and disk space
    # and speed up some things.
    skip-innodb

    (nyilván az utsó sort)
    Mondjuk ha azt mondjátok, ennek az előnyei csak "nagy forgalmú oldalnál és/vagy nagy méretű adatbázis tábláknál" értékelhetők igazán, akkor hagyom is a fenébe egyelőre, nem foglalkozom vele. De szóljatok, ha mégis érdemes. :)
    (Amúgy MySQL-verzió: 5.0.51a.)

    "Igazából olyan nincs, hogy konkurrens írás, egyszerre csak 1 írási művelet végződik, a többiek pedig várnak a sorukra."
    OK, világos. Csak úgy értettem, nem állhat-e elő mégis az az eset, aminek minimális az esélye, hogy két kérés esetén épp ugyanakkor próbálnak írni az adatbázisba, ezért a lock-olási folyamat megkergül - dehát mondjuk így is-úgy is gondolom az egyik akkor is előbb fogja tudni lezárni, hogy a másik ne tudja addig babrálni.
    Ilyenkor van egy bizonyos timeout idő, amíg vár a sorára, majd amikor már nincs lock-olva a tábla, végrehajtja a feladatot, igaz?

Aktív témák