TL;DR:Als je forum traag is, is het TRANSACTIE-ISOLATIENIVEAU daar hoogstwaarschijnlijk niet de oorzaak van en het zal nauwelijks helpen om het op iets anders dan de standaardwaarde in te stellen. Het instellen van innodb_flush_log_on_trx_commit =2 zal helpen, maar heeft gevolgen voor de duurzaamheid bij crashes.
De lange versie:
Welk TRANSACTIE-ISOLATIENIVEAU heb ik opgeschreven in http:/ /mysqldump.azundris.com/archives/77-Transactions-An-InnoDB-Tutorial.html . Bekijk alle 3 InnoDB-overzichtsartikelen in http://mysqldump.azundris.com/categories/32 -InnoDB .
Het resultaat is dat het systeem in ieder geval moet kunnen ROLLBACK, dus zelfs READ UNCOMMITTED niet, verandert iets dat moet worden gedaan bij het schrijven.
Voor leestransacties is het lezen langzamer wanneer de keten van ongedaan maken van logrecords die leidt tot de weergave voor de leestransactie langer is, dus LEZEN NIET COMMITTED of READ COMMITTED kan iets sneller zijn dan de standaard HERHAALBARE LEZEN. Maar je moet er rekening mee houden dat we het hier hebben over geheugentoegangen en dat het de schijftoegangen zijn die je vertragen.
Wat betreft AUTOCOMMIT:dit zal elke afzonderlijke schrijfopdracht naar schijf synchroniseren. Als u eerder MyISAM hebt gebruikt en dat goed genoeg was, wilt u misschien
. configureren[mysqld]
innodb_flush_log_on_trx_commit = 2
in uw my.cnf-bestand en start de server opnieuw op.
Dat zorgt ervoor dat de commit van de mysqld naar de buffercache van het bestandssysteem schrijft, maar het leegmaken van de buffercache van het bestandssysteem naar schijf uitstelt, zodat het maar één keer per seconde gebeurt. U verliest geen gegevens bij een mysqld-crash, maar u kunt wel 1s aan schrijfbewerkingen verliezen bij een hardwarecrash. De InnoDB zal echter automatisch herstellen, zelfs na een hardwarecrash, en het gedrag is nog steeds beter dan voorheen met MyISAM, zelfs als het niet vol ACID is. Het zal veel sneller zijn dan AUTOCOMMIT zonder die instelling.