Usporedba baza podataka
MySQL: Zadana baza podataka, još uvijek zarađuje
MySQL je baza podataka na kojoj radi većina weba, ne zato što je uzbudljiva, već zato što je predvidljiva: InnoDB-ova ACID jezgra, model replikacije kojeg je svaki administrator dotaknuo, i ekosustav panela, dodataka i pretpostavki aplikacija izgrađenih na vrhu. Ozbiljan posao je u zadanim postavkama konfiguracije, disciplini replikacije i saznanju gdje verzija 8 zapravo zarađuje svoju složenost.
Ključne točke
- InnoDB je motor za pohranu koji je bitan: klasterirani primarni ključevi, zaključavanje redaka i obnavljanje bez kvara; MyISAM naslijeđeni članci koji preporučuju zamjenu motora obično prethode stvarnosti da je moderni MySQL stog 99% InnoDB i sretniji zbog toga.
- MySQL 8 zaradio je bol nadogradnje stvarnim značajkama: funkcije prozora, CTE, poboljšani EXPLAIN FORMAT=TREE, rukovanje JSON-om klase Hermes putem JSON_TABLE; tokovi koji su predviđali marketing na prvom mjestu MariaDB forks-a znatno su se suzili.
- Replikacija je mjesto gdje se stvaraju ili prekidaju karijere: postavke temeljene na GTID-u čine topologiju (lanac, više izvora) upravljivom, polu-sinkronizaciju kao kompromis između performansi i trajnosti, a kašnjenje čitanja-replikacije mora se mjeriti, a ne pretpostavljati (provjere u stilu pt-heartbeat-a ili latencija temeljena na performance_schema).
- Rad na performansama počinje sa sporim dnevnikom upita plus performance_schema: sažetci izraza, korištenje indeksa i prvo indeksiranje sheme pobjeđuju svaki čarobni my.cnf popis parametara; dimenzioniranje međuspremnika u odnosu na radni skup pravi je gumb koji je bitan.
- Sigurnosne kopije koje obnavljaju: tijekovi rada temeljeni na dumpu (mysqldump --single-transaction) za male posjede, fizičke snimke (Percona xtrabackup-class) za brzinu i oporavak u određenom trenutku uvijek testiran prema stvarnom rasporedu ispada, a ne prema rešetki dokumentacije.
- Tamo gdje zadani status MySQL-a nastavlja pobjeđivati: ekosustavi aplikacija ga pretpostavljaju, paneli ga isporučuju (često zamijenjeni za MariaDB), operateri u oblaku daju ga jeftino, a ekosustavi CMS dodataka (osobito WordPress) prvo testiraju protiv njega; ostati zadan znači ostati testiran.
Terenska bilješka
Najbolji rad na performansama MySQL-a koji sam ikada vidio nije bio maraton podešavanja konfiguracije: bio je to programer koji je izbrisao tri indeksa koji su se borili protiv jedne OLTP tablice za protok pisanja. Un-benchmarking počinje u sporim pregledima upita, a ne u postovima na blogu.
Često postavljana pitanja
MySQL 8 ili MariaDB za novi projekt?
Novi projekti bez ograničenja ekosustava: MariaDB je dobra zadana postavka, ali MySQL 8 ima ekosustav dobavljača, sigurnosne zakrpe i opremu replikacije. Usporedite značajke koje stvarno trebate, pročitajte naš članak o mysql-vs-postgresql za relacijsko pitanje.
Da li prebacivanje postojećeg MySQL-a na MariaDB zahtijeva promjene?
Vraćanje na stariju verziju u verzijama binarnog formata je teška oštrica: MariaDB ne čita podatkovni rječnik MySQL 8. Logička migracija (dump/load) radi, zamjena dodatka treba inventar prije predaje.
Polusinkronizirana replikacija: isplati li se kašnjenje?
Smanjuje tihi gubitak podataka u slučaju greške; klasično pravilo je jedan od dva izbora dosljednosti/izvedbe s asinkronom kao osnovnom linijom. Za većinu zagušenih radnih opterećenja pravi odgovor je polu-sinkronizacija plus testirani failover, a ne puna sinkronizacija.
Kako mogu spriječiti jednu sporu stranicu da ubije okvir?
Resursi po korisniku (CloudLinux db_governor na zajedničkim skupovima, ograničenje proxy upita ispred) plus disciplina sporih upita; sama baza podataka nema sigurnosni pojas osim ako ga okolina ne daje.
Kako Kinetikatech pomaže kod usporedba baza podataka
Ne morate postati stručnjak za usporedba baza podataka: Izbori motora baze podataka za radna opterećenja, u usporedbi s jamstvima ispravnosti, operativnom težinom i stvarnim troškovima: ugrađeni motori protiv poslužitelja, MySQL protiv PostgreSQL-a, SQL protiv pohrana dokumenata, plus naslijeđena studija slučaja koja se stalno vraća. Upravo za to postoji Upravljanje serverima i Optimizacija brzine web stranice: puštanje u rad, jačanje, nadzor i dežurna osoba dan i noć.