sql >> Database >  >> RDS >> Mysql

Top 10 interessante weetjes &tips over MySQL

MySQL is het snelst groeiende open-source relationele databasebeheersysteem met 100 miljoen downloads tot nu toe. Het is een populaire keuze voor databases voor gebruik in webapplicaties en wordt momenteel gebruikt door veel grote websites, waaronder Facebook, Twitter, Wikipedia, Flickr, YouTube enz. Laten we nu eens kijken naar de top 10 interessante feiten en tips over MySQL.

Interessante feiten en tips over MySQL

1. MySQL ondersteunt tot 64 indexen per tabel. Elke index kan uit 1 tot 16 kolommen bestaan. De maximale indexgrootte is 1000 bytes (767 voor InnoDB).

2. De maximale grootte van een rij in een MySQL-tabel is 65.535 bytes. En de maximale waarde van Signed Integer is 2.147.483.647 en de waarde van Unsigned Integer is 4.294.967.295. In een gemengde tabel met zowel CHAR als VARCHAR, zal MySQL de CHAR's veranderen in VARCHAR's.

3. Als een PRIMARY KEY- of UNIQUE-index uit slechts één kolom met een geheel getal bestaat, kunt u in SELECT-instructies ook naar de kolom verwijzen als "_rowid".

4. Om de waarde van de AUTO_INCREMENT te wijzigen, gebruikt u "ALTER TABLE AUTO_INCREMENT =value;" of “SET INSERT_ID =waarde;”

5. Om te voorkomen dat MySQL publiekelijk wordt geopend, gebruikt u de optie "skip-networking" in het configuratiebestand. Wanneer het is ingeschakeld, luistert MySQL alleen naar lokale socketverbindingen en negeert het alle TCP-poorten. En de parameter "bind-address" die is ingesteld op "127.0.0.1" beperkt de MySQL om alleen toegankelijk te zijn voor de localhost.

6. Als de MySQL veel verbindingen tot stand heeft gebracht (d.w.z. een website zonder permanente verbindingen), kunt u de prestaties verbeteren door thread_cache_size in te stellen op een waarde die niet nul is. 16 is een goede waarde om mee te beginnen. Verhoog de waarde totdat uw threads_created niet erg snel groeien.

7. NO_AUTO_VALUE_ON_ZERO onderdrukt auto-increment voor 0. Alleen NULL genereert het volgende volgnummer. Deze modus kan handig zijn als 0 is opgeslagen in de AUTO_INCREMENT-kolom van een tabel. (Het opslaan van 0 wordt trouwens niet aanbevolen.)

8. De configuratie-opties "innodb_analyze_is_persistent", "innodb_stats_persistent_sample_pages" en "innodb_stats_transient_sample_pages" bieden verbeterde nauwkeurigheid van InnoDB-indexstatistieken en consistentie bij het opnieuw opstarten van MySQL. InnoDB berekent vooraf statistieken die de optimizer helpen beslissen welke indexen in een query moeten worden gebruikt, door een deel van de index te samplen. U kunt de hoeveelheid bemonstering aanpassen die InnoDB voor elke index doet. De resulterende statistieken kunnen nu blijven bestaan ​​tijdens het opnieuw opstarten van de server, in plaats van opnieuw te worden berekend (en mogelijk te veranderen) vanwege opnieuw opstarten en sommige runtime-gebeurtenissen. De nauwkeurigere statistieken kunnen de queryprestaties verbeteren en het persistentieaspect kan de queryprestaties stabiel houden. Als de functie voor permanente statistieken is ingeschakeld, worden de statistieken alleen opnieuw berekend als u expliciet ANALYSE TABLE voor de tabel uitvoert.

9. InnoDB maakt het geheugen vrij dat is gekoppeld aan een geopende tafel om de geheugenbelasting op systemen met enorme aantallen tafels te verlichten. Een LRU-algoritme selecteert tabellen die het langst zijn gebleven zonder dat ze zijn geopend. Om meer geheugen te reserveren voor open tabellen, verhoogt u de waarde van de –table_definition_cache=# configuratie-optie.

10. Stel de parameter table_cache in zodat deze overeenkomt met het aantal open tabellen en gelijktijdige verbindingen. Bekijk de open_tables-waarde en als deze snel groeit, moet u de grootte van "table_cache" vergroten. En stel voor de parameter "open_file_limit" deze limiet in op 20+max_connections+table_cache*2. Als u complexe zoekopdrachten heeft, zijn "sort_buffer_size" en "tmp_table_size" waarschijnlijk erg belangrijk. Waarden zijn afhankelijk van de complexiteit van de zoekopdracht en de beschikbare bronnen, maar respectievelijk 4 MB en 32 MB zijn aanbevolen startpunten.

Let op:Dit zijn “per verbinding” waarden. Houd dus rekening met uw belasting en beschikbare resource bij het instellen van deze parameters. Sort_buffer_size wordt bijvoorbeeld alleen toegewezen als MySQL een sortering moet doen, pas op dat het geheugen niet vol raakt.


  1. 3 manieren om de verzamelingen beschikbaar te krijgen in MariaDB

  2. MySQL OP DUPLICATE KEY UPDATE voor meerdere rijen invoegen in enkele query

  3. Tel met IF-voorwaarde in MySQL-query

  4. Mijn favoriete PostgreSQL-extensies - deel twee