Visa ett inlägg
Oläst 2011-12-23, 00:35 #6
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Clarence Clarence är inte uppkopplad
Administratör
 
Reg.datum: Jan 2003
Inlägg: 1 974
Då är det väldigt fördelaktig att du använder PKs på ett sätt att du får sekventiella reads eftersom datan klustras på PK. Ska alla attribut vara unika över userid och attribut, eller kan kombineras i ett fält, så lägg en komposit PK på userid, attribute i EAV-tabellen. Prestandaskillnaden blir väldigt stor när du ska hämta många attribut för en användare.

Ska mycket attribut läggas till är det också väldigt effektivt att hålla sig borta från foreign keys. Så länge du kollar av att attribut finns, tar bort attribut-värden när attribut eller användare tas bort så är risken för kvarbliven data liten. Vill du ha det väldigt rent kan du i ett cronjobb kolla efter och radera den.

Även att göra dig av med flush av transaktions-logg vid varje skrivning ger en rejäl förbättring av skrivprestandan (flush_log_at_trx_commit).

Vidare är även buffer-poolens storleks relation till datamängden väldigt viktig - men det vet du säkert redan. Däremot PK-användningen är största optimerings-punkten som ofta glöms eller används fel när man vant sig vid myisam.
Clarence är inte uppkopplad   Svara med citatSvara med citat