sql >> Databasteknik >  >> RDS >> Mysql

Är InnoDB (MySQL 5.5.8) rätt val för flera miljarder rader?

Ett enkelt svar på din fråga skulle vara ja. InnoDB skulle vara det perfekta valet för en datauppsättning med flera miljarder rader.

Det finns en mängd optimering som är möjlig.

De mest uppenbara optimeringarna skulle vara att ställa in en stor buffertpool, eftersom buffertpoolen är det enskilt viktigaste när det kommer till InnoDB eftersom InnoDB buffrar såväl data som index i buffertpoolen. Om du har en dedikerad MySQL-server med endast InnoDB-tabeller, bör du ställa in upp till 80 % av det tillgängliga RAM-minnet för att användas av InnoDB.

En annan viktig optimering är att ha korrekta index på bordet (med tanke på dataåtkomst/uppdateringsmönstret), både primära och sekundära. (Kom ihåg att primära index automatiskt läggs till sekundära index).

Med InnoDB finns det några extra godbitar, som skydd mot datakorruption, automatisk återställning etc.

När det gäller att öka skrivprestandan bör du ställa in dina transaktionsloggfiler för att vara upp till totalt 4G.

En annan sak du kan göra är att partitionera tabellen.

Du kan få mer prestanda genom att ställa in bin-log-formatet till "row" och ställa in auto_inc_lock_mode till 2 (som säkerställer att innodb inte håller tabellnivålås när du infogar i auto-increment-kolumner).

Om du behöver några specifika råd kan du kontakta mig, jag skulle vara mer än villig att hjälpa.



  1. Tips för att lagra PostgreSQL-säkerhetskopior på Google Cloud (GCP)

  2. MySQL vecka beräkning mellan två datum

  3. Övervaka MySQL-prestanda med ClusterControl

  4. Hur dyra är JOINs i SQL? Och/eller, vad är avvägningen mellan prestanda och normalisering?