sql >> Database teknologi >  >> RDS >> Mysql

Top 10 interessante fakta og tips om MySQL

MySQL er det hurtigst voksende open source relationsdatabasestyringssystem med 100 millioner downloads indtil dato. Det er et populært valg af database til brug i webapplikationer og bruges i øjeblikket af mange store websteder, herunder Facebook, Twitter, Wikipedia, Flickr, YouTube osv. Lad os nu finde ud af top 10 interessante fakta og tips om MySQL.

Interessante fakta og tips om MySQL

1. MySQL understøtter op til 64 indekser pr. tabel. Hvert indeks kan bestå af 1 til 16 kolonner. Den maksimale indeksstørrelse er 1000 bytes (767 for InnoDB).

2. Den maksimale størrelse af en række i en MySQL-tabel er 65.535 bytes. Og den maksimale værdi af Signed Integer er 2.147.483.647 og værdien af ​​Unsigned Integer er 4.294.967.295. I en blandet tabel med både CHAR og VARCHAR vil MySQL ændre CHAR'erne til VARCHAR's.

3. Hvis et PRIMARY KEY eller UNIQUE indeks kun består af én kolonne, der har en heltalstype, kan du også henvise til kolonnen som "_rowid" i SELECT-sætninger.

4. For at ændre værdien af ​​AUTO_INCREMENT, brug "ALTER TABLE AUTO_INCREMENT =værdi;" eller "SET INSERT_ID =værdi;"

5. For at begrænse MySQL fra at blive tilgået offentligt, skal du bruge "skip-networking"-indstillingen i konfigurationsfilen. Når det er aktiveret, lytter MySQL kun til lokale socketforbindelser og ignorerer alle TCP-porte. Og parameteren "bind-adresse", som er sat til "127.0.0.1", begrænser MySQL til kun at være tilgængelig for den lokale vært.

6. Hvis MySQL har mange forbindelser etableret (dvs. et websted uden vedvarende forbindelser), kan du forbedre ydeevnen ved at indstille thread_cache_size til en værdi, der ikke er nul. 16 er en god værdi at starte med. Forøg værdien, indtil dine threads_created ikke vokser særlig hurtigt.

7. NO_AUTO_VALUE_ON_ZERO undertrykker automatisk stigning for 0. Kun NULL genererer det næste sekvensnummer. Denne tilstand kan være nyttig, hvis 0 er blevet gemt i en tabels AUTO_INCREMENT-kolonne. (At gemme 0 er i øvrigt ikke en anbefalet praksis.)

8. Konfigurationsmulighederne "innodb_analyze_is_persistent", "innodb_stats_persistent_sample_pages" og "innodb_stats_transient_sample_pages" giver forbedret nøjagtighed af InnoDB-indeksstatistikker og konsistens på tværs af MySQL-genstarter. InnoDB forudberegner statistik, der hjælper optimeringsværktøjet med at beslutte, hvilke indekser der skal bruges i en forespørgsel, ved at sample en del af indekset. Du kan justere mængden af ​​sampling, som InnoDB foretager for hvert indeks. Den resulterende statistik kan nu bestå på tværs af servergenstarter i stedet for at blive genberegnet (og muligvis ændres) på grund af genstarter og nogle runtime-hændelser. Den mere nøjagtige statistik kan forbedre forespørgselsydeevnen, og persistensaspektet kan holde forespørgselsydeevnen stabil. Når den vedvarende statistikfunktion er aktiveret, genberegnes statistikkerne kun, når du eksplicit kører ANALYSE TABLE for tabellen.

9. InnoDB frigør hukommelsen forbundet med en åbnet tabel for at lette hukommelsesbelastningen på systemer med et stort antal tabeller. En LRU-algoritme udvælger tabeller, der har gået længst uden at blive tilgået. For at reservere mere hukommelse til åbne tabeller skal du øge værdien af ​​–table_definition_cache=# konfigurationsindstillingen.

10. Indstil table_cache-parameteren til at matche antallet af åbne tabeller og samtidige forbindelser. Se open_tables-værdien, og hvis den vokser hurtigt, skal du øge størrelsen på "table_cache". Og for parameteren "open_file_limit" indstilles denne grænse som 20+max_connections+table_cache*2. Hvis du har komplekse forespørgsler, er "sort_buffer_size" og "tmp_table_size" sandsynligvis meget vigtige. Værdier vil afhænge af forespørgslens kompleksitet og tilgængelige ressourcer, men henholdsvis 4 Mb og 32 Mb er anbefalede udgangspunkter.

Bemærk:Disse er "pr. forbindelse"-værdier. Så overvej din belastning og tilgængelige ressource, når du indstiller disse parametre. For eksempel tildeles sort_buffer_size kun, hvis MySQL skal udføre en sortering, pas på ikke at løbe tør for hukommelse.


  1. SQLite - Opret et forhold

  2. Django:tilladelse nægtet ved forsøg på at få adgang til databasen efter gendannelse (migrering)

  3. WHERE IN (matrix af ID'er)

  4. I Rails, kunne ikke oprette database for {adapter=>postgresql,