MySQL ist das am schnellsten wachsende relationale Open-Source-Datenbankverwaltungssystem mit bis heute 100 Millionen Downloads. Es ist eine beliebte Wahl für Datenbanken zur Verwendung in Webanwendungen und wird derzeit von vielen großen Websites verwendet, darunter Facebook, Twitter, Wikipedia, Flickr, YouTube usw. Lassen Sie uns nun die 10 interessantesten Fakten und Tipps über MySQL herausfinden.
Interessante Fakten und Tipps zu MySQL
1. MySQL unterstützt bis zu 64 Indizes pro Tabelle. Jeder Index kann aus 1 bis 16 Spalten bestehen. Die maximale Indexgröße beträgt 1000 Byte (767 für InnoDB).
2. Die maximale Größe einer Zeile in einer MySQL-Tabelle beträgt 65.535 Bytes. Und der maximale Wert von Signed Integer ist 2.147.483.647 und der Wert von Unsigned Integer ist 4.294.967.295. In einer gemischten Tabelle mit CHAR und VARCHAR ändert MySQL die CHARs in VARCHARs.
3. Wenn ein PRIMARY KEY- oder UNIQUE-Index nur aus einer Spalte vom Typ Integer besteht, können Sie in SELECT-Anweisungen auch auf die Spalte als „_rowid“ verweisen.
4. Um den Wert von AUTO_INCREMENT zu ändern, verwenden Sie „ALTER TABLE
5. Um den öffentlichen Zugriff auf MySQL zu beschränken, verwenden Sie die Option „skip-networking“ in der Konfigurationsdatei. Wenn es aktiviert ist, hört MySQL nur auf lokale Socket-Verbindungen und ignoriert alle TCP-Ports. Und der Parameter „bind-address“, der auf „127.0.0.1“ gesetzt ist, schränkt den Zugriff auf MySQL nur für den lokalen Host ein.
6. Wenn MySQL viele Verbindungen hergestellt hat (d. h. eine Website ohne dauerhafte Verbindungen), können Sie die Leistung verbessern, indem Sie thread_cache_size auf einen Wert ungleich Null setzen. 16 ist ein guter Wert für den Anfang. Erhöhen Sie den Wert, bis Ihre threads_created nicht mehr sehr schnell wachsen.
7. NO_AUTO_VALUE_ON_ZERO unterdrückt Autoinkrement für 0. Nur NULL generiert die nächste Sequenznummer. Dieser Modus kann nützlich sein, wenn 0 in der AUTO_INCREMENT-Spalte einer Tabelle gespeichert wurde. (Das Speichern von 0 ist übrigens keine empfohlene Vorgehensweise.)
8. Die Konfigurationsoptionen „innodb_analyze_is_persistent“, „innodb_stats_persistent_sample_pages“ und „innodb_stats_transient_sample_pages“ bieten eine verbesserte Genauigkeit der InnoDB-Indexstatistiken und Konsistenz bei MySQL-Neustarts. InnoDB berechnet Statistiken vorab, die dem Optimierer helfen, zu entscheiden, welche Indizes in einer Abfrage verwendet werden sollen, indem ein Teil des Index abgetastet wird. Sie können den Stichprobenumfang anpassen, den InnoDB für jeden Index durchführt. Die resultierenden Statistiken können jetzt über Serverneustarts hinweg bestehen bleiben, anstatt aufgrund von Neustarts und einigen Laufzeitereignissen neu berechnet (und möglicherweise geändert) zu werden. Die genaueren Statistiken können die Abfrageleistung verbessern, und der Persistenzaspekt kann die Abfrageleistung stabil halten. Wenn die dauerhafte Statistikfunktion aktiviert ist, werden die Statistiken nur dann neu berechnet, wenn Sie explizit ANALYZE TABLE für die Tabelle ausführen.
9. InnoDB gibt den Speicher frei, der einer geöffneten Tabelle zugeordnet ist, um die Speicherlast auf Systemen mit einer großen Anzahl von Tabellen zu verringern. Ein LRU-Algorithmus wählt Tabellen aus, auf die am längsten nicht zugegriffen wurde. Um mehr Speicher für geöffnete Tabellen zu reservieren, erhöhen Sie den Wert der Konfigurationsoption –table_definition_cache=#.
10. Stellen Sie den Parameter table_cache so ein, dass er der Anzahl offener Tabellen und gleichzeitiger Verbindungen entspricht. Beobachten Sie den open_tables-Wert und wenn er schnell wächst, müssen Sie die Größe von „table_cache“ erhöhen. Und für den Parameter „open_file_limit“ setzen Sie dieses Limit auf 20+max_connections+table_cache*2. Wenn Sie komplexe Abfragen haben, sind „sort_buffer_size“ und „tmp_table_size“ wahrscheinlich sehr wichtig. Die Werte hängen von der Komplexität der Abfrage und den verfügbaren Ressourcen ab, aber 4 MB bzw. 32 MB sind empfohlene Ausgangspunkte.
Hinweis:Dies sind „pro Verbindung“-Werte. Berücksichtigen Sie daher Ihre Auslastung und die verfügbaren Ressourcen, wenn Sie diese Parameter festlegen. Zum Beispiel wird sort_buffer_size nur zugewiesen, wenn MySQL eine Sortierung durchführen muss, achten Sie darauf, dass Ihnen nicht der Speicher ausgeht.