Administratör
|
|
Reg.datum: Jan 2003
Inlägg: 1 974
|
|
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.
|