Kisebb gyorsításokat hajtok végre a napokban a bringás siteokat kiszolgáló szerveren. A criticalmass.hu 22-én megint csúcsra lesz járatva, az alleycat.hu pedig szinte folyamatosan: először Goldenblog-győzelem, tegnap IGA, és a CM környékén is hagyományosan küldik az Alley-t is a népek.
Első körben MyISAM-ról átállunk ezek alatt az adatbázisok alatt InnoDB storage engine-re, amitől gyorsabb lesz minden írásművelet, hurrá. Ezt persze rég meg kellett volna már tenni, de idő hiányában sose történt meg.
Az átállás maga nem egy nagy etwas:
- Belövöd az InnoDB-t a szerveren: egyrészt ki kell kommentezni a skip-innodb opciót a /etc/mysql/my.cnf [mysql] szekciójában, másrészt beletolni pár opcionális sort. (Lásd MySQL doksi.)
- Kidumpolod a MyISAM táblákat:
mysqldump --default-character-set=utf8 -u[user] -p[pass] [db] > [db].sql
- Létrehozol egy új adatbázist: ez lesz majd az InnoDB-vel küldött adatbázis. (A régit egy ideig tartogatjuk a történelemkönyvek kedvéért.)
- MyISAM helyett InnoDB használatát állítod be, azaz kicseréled az ENGINE=MyISAM stringeket ENGINE=InnoDB stringekre:
sed 's/ENGINE\=MyISAM/ENGINE\=INNODB/' [db].sql >[db]-inno.sql
- Visszatolod az InnoDB sql-t az új (üres) adatbázisodba:
mysql -u[user] -p[pass] [db]-inno <[db]inno.sql
Egész jó kis migrációs howto-t találsz itt, kicsit több magyarázattal, mint az enyém. (Már így is túlragoztam, nemde?)
Ami következik:
- alleycat.hu átállítása ugyanígy;
- InnoDB backupmegoldás.
És ha az megvan, akkor jön a Lighty, vagy egy lecsupaszított Apache beállítása a terhelt oldalak kiszolgálására.
Forrás: http://lipilee.hu/2007/09/04/cm-gyorsitosav-myisam-innodb-upgrade-a-criticalmasshu-alatt/
lemezterület
Jó kis téma. Mikor áttértem InnoDB-re, az első pofon, amibe belefutottam az volt, hogy az InnoDB soha nem adja vissza az egyszer elfoglalt lemezterületet. Ez főleg akkor idegesítő, ha az ember gyakran dobál el táblákat, ill. egész adatbázisokat.
Megoldás: innodb_file_per_table, optimize table. Lehet, hogy ez adatbázis guruknak triviális, de újszülöttnek minden vicc új, úgyhogy leírtam a később jövők okulására :)
köszi a linket!
ninja
http://alleycat.hu
ninja - http://alleycat.hu
köszi a linket, nem
köszi a linket, nem ismertem a file-per-table-t. (vagy igen, de nem emlékeztem rá :))
kérdés: ha most van egy nagy tablespace-em, és szeretném bekapcsolni a file-per-table-t, hogy tudom könnyen megtenni? export-import, vagy van valami könnyű megoldás is? esetleg a MySQL megcsinálja helyettem a táblák file-ba szórását a közös tablespace-ből?
--
speak no evil - lipilee.hu
--
speak no evil - lipilee.hu
én csak export-import
én csak export-import megoldásról tudok. táblánként ki, átállít, minden drop, aztán táblánként be.
mysql manualból:
"innodb_file_per_table affects only table creation, not access to existing tables. If you start the server with this option, new tables are created using .ibd files, but you can still access tables that exist in the shared tablespace. If you remove the option and restart the server, new tables are created in the shared tablespace, but you can still access any tables that were created using multiple tablespaces."
http://dev.mysql.com/doc/refman/5.0/en/multiple-tablespaces.html
InnoDb esetén nem lesz
InnoDb esetén nem lesz lassab az olvasási művelet ?
Nem, mert nagy mennyiségű
Nem, mert nagy mennyiségű írás esetén a MyISAM egy teljes táblát zárol, az InnoDB csak egy sort.
Aries
http://aries.mindworks.hu
Drupal LigHTTPd páros
for the record: sikerült összehozni a Lihgty-t a Drupállal.
a teljesítménynövekedés elképesztő, csak ajánlani tudom az átállást!
bővebben itt: http://lipilee.hu/..
ninja - http://alleycat.hu
ninja - http://alleycat.hu
Köszi a tippet ninja. Én
Köszi a tippet ninja.
Én is átálltam lighttpd-re.Lényegesen kisebb a terhelés.
Sajnos nemkem nem sikerül
Sajnos nekem nem sikerütl az adatbázist visszatolni innodb-be.
A következő üzenetet kapom :The used table type doesn't support FULLTEXT indexes
A comment táblánal akad ki.Mysql verzióm : MySQL - 5.0.21
Tudna valaki segiteni ?
link: MyISAM to InnoDB
link: MySQL migration: MyISAM to InnoDB
ninja - http://alleycat.hu
ninja - http://alleycat.hu
Ezek szerint nincs más
Ezek szerint nincs más megoldás csak ha a comments tábla marad myisam?
Milyen ellenérv lehet az
Milyen ellenérv lehet az innodb használatával szemben?
Néhány feature-t nem tud, pl.
Néhány feature-t nem tud, pl. fulltext search, de ezek a Drupal szempontjából kevésbé relevánsak.
Drupál szempontjából
Drupál szempontjából egyáltalán nem, mert nem használja. Csak akkor felmerül a kérdés miért nem ez a default?
Már ez lesz a default.
A hetesben ez is benne van. (azért van és nem lesz, mert már van. Érted? Fejben tartják.)
http://drupal.org/node/301362
pp
Palócz István
https://palocz.hu | https://tanarurkerem.hu
Mert a MySQL-ben sem ez a
Mert a MySQL-ben sem ez a default, külön opcióval kell megadni, hogy benne legyen ez a táblaforma is. Egyébként akinek ez a siralma, annak elegendő tudásának illene lennie ahhoz, hogy egy pársoros scripttel átkonvertálja a táblákat.
par sor? en ugy tudtam ennyi
par sor? en ugy tudtam ennyi eleg hozza:
ALTER TABLE tablaneve ENGINE = InnoDB;
---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.
Hány tábla is van és hány
Hány tábla is van és hány mező? :)
MyISAM időnként gyorsabb
A hozzáértők szerint ha egy táblán az írási, vagy olvasási műveletek aránya meghaladja a 90%-ot, akkor a MyISAM többnyire gyorsabb. Tehát ha van egy táblád, amit ritkán frissítesz, de állandóan olvasol, lehet, hogy jobban jársz MyISAM-mal.
Csakúgy, mint a fordított esetben, amikor állandóan írsz, de ritkán olvasol, ilyen sok helyen a keresőindex – nagyobb webhelyen a search* táblákat többnyire MyISAM-mal érdemes működtetni.
Akkor a locale*-ot is.
Akkor a locale*-ot is.