sql >> Databasteknik >  >> RDS >> Mysql

Topp 10 intressanta fakta och tips om MySQL

MySQL är det snabbast växande relationsdatabashanteringssystemet med öppen källkod med 100 miljoner nedladdningar hittills. Det är ett populärt val av databas för användning i webbapplikationer och används för närvarande av många stora webbplatser, inklusive Facebook, Twitter, Wikipedia, Flickr, YouTube etc. Nu ska vi ta reda på topp 10 intressanta fakta och tips om MySQL.

Intressanta fakta och tips om MySQL

1. MySQL stöder upp till 64 index per tabell. Varje index kan bestå av 1 till 16 kolumner. Den maximala indexstorleken är 1000 byte (767 för InnoDB).

2. Den maximala storleken på en rad i en MySQL-tabell är 65 535 byte. Och det maximala värdet på Signed Integer är 2 147 483 647 och värdet på Unsigned Integer är 4 294 967 295. I en blandad tabell med både CHAR och VARCHAR kommer MySQL att ändra CHAR till VARCHAR.

3. Om ett PRIMARY KEY eller UNIQUE index består av endast en kolumn som har en heltalstyp, kan du även referera till kolumnen som "_rowid" i SELECT-satser.

4. För att ändra värdet på AUTO_INCREMENT, använd "ALTER TABLE AUTO_INCREMENT =value;" eller “SET INSERT_ID =value;”

5. För att begränsa MySQL från att nås offentligt, använd alternativet "hoppa över nätverk" i konfigurationsfilen. När den är aktiverad lyssnar MySQL bara på lokala socketanslutningar och ignorerar alla TCP-portar. Och parametern "bind-address" som är inställd på "127.0.0.1" begränsar MySQL till att endast vara tillgänglig för den lokala värden.

6. Om MySQL har många anslutningar etablerade (dvs. en webbplats utan beständiga anslutningar), kan du förbättra prestandan genom att ställa in thread_cache_size till ett värde som inte är noll. 16 är ett bra värde att börja med. Öka värdet tills dina threads_created inte växer särskilt snabbt.

7. NO_AUTO_VALUE_ON_ZERO undertrycker automatisk ökning för 0. Endast NULL genererar nästa sekvensnummer. Detta läge kan vara användbart om 0 har lagrats i en tabells kolumn AUTO_INCREMENT. (Att lagra 0 är förresten inte en rekommenderad praxis.)

8. Konfigurationsalternativen "innodb_analyze_is_persistent", "innodb_stats_persistent_sample_pages" och "innodb_stats_transient_sample_pages" ger förbättrad noggrannhet av InnoDB-indexstatistik och konsistens över MySQL-omstarter. InnoDB förberäknar statistik som hjälper optimeraren att bestämma vilka index som ska användas i en fråga, genom att sampla en del av indexet. Du kan justera mängden sampling som InnoDB gör för varje index. Den resulterande statistiken kan nu bestå över serverstarter, snarare än att beräknas om (och eventuellt ändras) på grund av omstarter och vissa körtidshändelser. Den mer exakta statistiken kan förbättra frågeprestanda, och persistensaspekten kan hålla frågeprestanda stabil. När den beständiga statistikfunktionen är aktiverad, beräknas statistiken bara om när du uttryckligen kör ANALYSE TABLE för tabellen.

9. InnoDB frigör minnet som är associerat med en öppen tabell för att underlätta minnesbelastningen på system med ett stort antal tabeller. En LRU-algoritm väljer tabeller som har gått längst utan att nås. För att reservera mer minne för öppna tabeller, öka värdet på konfigurationsalternativet –table_definition_cache=#.

10. Ställ in parametern table_cache för att matcha antalet öppna tabeller och samtidiga anslutningar. Titta på open_tables-värdet och om det växer snabbt måste du öka storleken på "table_cache". Och för parametern "open_file_limit" ställ in denna gräns som 20+max_connections+table_cache*2. Om du har komplexa frågor är "sort_buffer_size" och "tmp_table_size" sannolikt mycket viktiga. Värdena beror på frågans komplexitet och tillgängliga resurser, men 4 Mb respektive 32 Mb är rekommenderade utgångspunkter.

Obs:Dessa är värden för "per anslutning". Så, överväg din belastning och tillgängliga resurser när du ställer in dessa parametrar. Till exempel tilldelas sort_buffer_size endast om MySQL behöver göra en sortering, var försiktig så att du inte får ont om minne.


  1. PSQLE Undantag:aktuell transaktion avbryts, kommandon ignoreras till slutet av transaktionsblocket

  2. Vad är DBMS? – En omfattande guide till databashanteringssystem

  3. Hur får man storleken på mysql-databasen?

  4. "VARNING:Felmatchning hittades mellan sl_table och pg_class." i Slony-I