Inhaltsverzeichnis
1. Nicht-persistente statistische Informationen
STATS_PERSISTENT=0
3. Umgang mit ungenauen statistischen Informationen
Heim Datenbank MySQL-Tutorial Detaillierte Übersicht über MySQL-Statistiken

Detaillierte Übersicht über MySQL-Statistiken

Mar 05, 2018 pm 04:12 PM
mysql 信息 统计

Dieser Artikel bietet einen umfassenden Überblick über die relevanten Wissenspunkte der statistischen MySQL-Informationen, indem er das Konzept der statistischen Informationen und die Vorteile der statistischen MYSQL-Informationen vorstellt. Ich hoffe, er kann Freunden in Not helfen.

MySQL durchläuft bei der Ausführung von SQL den Prozess der SQL-Analyse und Abfrageoptimierung. Der Parser zerlegt SQL in Datenstrukturen und übergibt sie an nachfolgende Schritte und erstellt einen Ausführungsplan. Der Abfrageoptimierer bestimmt, wie SQL ausgeführt wird, und zwar anhand der Statistiken der Datenbank. Im Folgenden stellen wir den relevanten Inhalt der Innodb-Statistiken in MySQL 5.7 vor.

Der MySQL-Statistikspeicher ist in zwei Typen unterteilt: nicht-persistente und persistente Statistiken.

1. Nicht-persistente statistische Informationen

Nicht-persistente statistische Informationen werden im Speicher gespeichert. Wenn die Datenbank neu gestartet wird, gehen die statistischen Informationen verloren. Es gibt zwei Möglichkeiten, nicht persistente Statistiken festzulegen:

Nicht persistente Statistiken werden in den folgenden Situationen automatisch aktualisiert:

1 全局变量,

INNODB_STATS_PERSISTENT=OFF

2 CREATE/ALTER表的参数,

STATS_PERSISTENT=0

1 globale Variable,

INNODB_STATS_PERSISTENT=OFF

1 执行ANALYZE TABLE

2 innodb_stats_on_metadata=ON情况下,执SHOW TABLE STATUS, SHOW INDEX, 查询 INFORMATION_SCHEMA下的TABLES, STATISTICS

3 启用--auto-rehash功能情况下,使用mysql client登录

4 表第一次被打开

5 距上一次更新统计信息,表1/16的数据被修改

2 Parameter der CREATE/ALTER-Tabelle,

STATS_PERSISTENT=0

1 ANALYZE TABLE ausführen

2 Wenn innodb_stats_on_metadata=ON, führen Sie SHOW TABLE STATUS, SHOW INDEX aus, fragen Sie TABLES unter INFORMATION_SCHEMA, STATISTICS ab

3 Wenn die Funktion --auto-rehash aktiviert ist, melden Sie sich zum ersten Mal mit dem MySQL-Client an

1 INNODB_STATS_AUTO_RECALC=ON

情况下,表中10%的数据被修改

2 增加新的索引 

4 Tabelle Geöffnet

innodb_table_stats

database_name

数据库名

table_name

表名

last_update

统计信息最后一次更新时间

n_rows

表的行数

clustered_index_size

聚集索引的页的数量

sum_of_other_index_sizes

其他索引的页的数量

5 Seit der letzten Aktualisierung der statistischen Informationen wurden die Daten in Tabelle 1/16 geändert

innodb_index_stats

database_name

数据库名

table_name

表名

index_name

索引名

last_update

统计信息最后一次更新时间

stat_name

统计信息名

stat_value

统计信息的值

sample_size

采样大小

stat_description

类型说明

Die Nachteile nicht persistenter Statistiken liegen auf der Hand. Wenn eine große Anzahl von Tabellen nach dem Neustart der Datenbank mit der Aktualisierung der Statistiken beginnt, hat dies große Auswirkungen auf die Instanz, sodass sie dauerhaft ist Statistiken werden derzeit verwendet. 2. Persistenzstatistiken Ab 5.6.6 verwendet MySQL standardmäßig Persistenzstatistiken, d. h. INNODB_STATS_PERSISTENT=ON . Persistenzstatistiken werden in den folgenden Situationen automatisch aktualisiert:
1 INNODB_STATS_AUTO_RECALC=ON, 10 % der Daten in der Tabelle werden geändert
2 Fügen Sie einen neuen Index hinzu
innodb_table_stats sind die statistischen Informationen der Tabelle, innodb_index_stats sind die statistischen Informationen des Index, die Bedeutung jedes Feldes ist wie folgt:
innodb_table_stats
database_name Datenbankname
Tabellenname Tabellenname
last_update Zeit der letzten Aktualisierung der Statistik
n_rows Die Anzahl der Zeilen in der Tabelle
clustered_index_size Die Anzahl der Seiten im Clustered-Index
sum_of_other_index_sizes Andere Indexseiten Anzahl von
tr>stat_value
innodb_index_stats
Datenbankname Datenbankname td>
Tabellenname Tabellenname
Indexname Indexname
last_update Zeitpunkt der letzten Aktualisierung der Statistik
stat_name Statistikname
Statistikwert
sample_size Stichprobengröße
stat_description Typbeschreibung td>

Um innodb_index_stats besser zu verstehen, erstellen Sie eine Testtabelle zur Erläuterung:

CREATE TABLE t1 (
 a INT, b INT, c INT, d INT, e INT, f INT,
 PRIMARY KEY (a, b), KEY i1 (c, d), UNIQUE KEY i2uniq (e, f)
) ENGINE=INNODB;
Nach dem Login kopieren

Schreiben Sie die Daten wie folgt:

Um die statistischen Informationen der t1-Tabelle anzuzeigen, müssen Sie sich auf die Felder stat_name und stat_value konzentrieren

Wenn tat_name=size: stat_value angibt Anzahl der indizierten Seiten

Wenn stat_name=n_leaf_pages: stat_value die Anzahl der Blattknoten darstellt

Wenn stat_name=n_diff_pfxNN: stat_value die Anzahl der eindeutigen Werte im Indexfeld darstellt. Hier ist a Ausführliche Erklärung:

1. n_diff_pfx01 stellt die Zahl nach der ersten Spalte des Index dar. Spalte a von PRIMARY hat beispielsweise nur einen Wert 1, wenn also index_name='PRIMARY' und stat_name='. n_diff_pfx01', stat_value=1.

2. n_diff_pfx02 stellt die Zahl nach der Differenz der ersten beiden Spalten des Index dar. Beispielsweise haben die Spalten e und f von i2uniq 4 Werte, also wenn index_name='i2uniq' und stat_name='n_diff_pfx02 ', stat_value=4.

3. Bei nicht eindeutigen Indizes wird der Primärschlüsselindex nach den ursprünglichen Spalten hinzugefügt, z. B. index_name='i1' und stat_name='n_diff_pfx03', und die Primärschlüsselspalte a wird danach hinzugefügt Die ursprünglichen Indexspalten c und d (Das eindeutige Ergebnis von c, d, a) ist 2.

Das Verständnis der spezifischen Bedeutung von stat_name und stat_value kann uns bei der Fehlersuche helfen, warum beim Ausführen von SQL kein geeigneter Index verwendet wird. Beispielsweise ist der stat_value eines bestimmten Index n_diff_pfxNN viel kleiner als der tatsächliche Wert des Abfrageoptimierers hält den Index für selektiv. Wenn er schlecht ist, kann dies dazu führen, dass der falsche Index verwendet wird.

3. Umgang mit ungenauen statistischen Informationen

Wir haben den Ausführungsplan überprüft und festgestellt, dass nicht der richtige Index verwendet wurde. Wenn dies auf einen großen Unterschied in den statistischen Informationen in innodb_index_stats zurückzuführen ist, kann dies der Fall sein wie folgt gehandhabt werden:

1. Bitte beachten Sie, dass Lesesperren während der Ausführung hinzugefügt werden:

ANALYZETABLE TABLE_NAME;

2 Die statistischen Informationen sind nach der Aktualisierung immer noch ungenau. Erwägen Sie das Hinzufügen weiterer Daten. Die Datenseite der Tabellenstichprobe kann auf zwei Arten geändert werden:

a) Globale Variable INNODB_STATS_PERSISTENT_SAMPLE_PAGES, der Standardwert ist 20;

b) A Eine einzelne Tabelle kann die Stichprobe der Tabelle angeben:

ALTER TABLE TABLE_NAME STATS_SAMPLE_PAGES=40;

Nach dem Test beträgt der Maximalwert von STATS_SAMPLE_PAGES hier 65535. Wenn er überschritten wird, wird ein Fehler gemeldet .

Derzeit bietet MySQL keine Histogrammfunktion. In einigen Fällen (z. B. bei ungleichmäßiger Datenverteilung) führt die einfache Aktualisierung statistischer Informationen möglicherweise nicht zu einem genauen Ausführungsplan. Die neue Version 8.0 wird eine Histogrammfunktion hinzufügen. Freuen wir uns darauf, dass MySQL immer leistungsfähiger wird!

Verwandte Empfehlungen:

Beispielanalyse: statistisches Informationsmanagement, Spring-Annotation-Entwicklung und EasyUI

Sammeln von SQL Server-Statistiken_PHP-Tutorial

Das obige ist der detaillierte Inhalt vonDetaillierte Übersicht über MySQL-Statistiken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie man phpmyadmin öffnet Wie man phpmyadmin öffnet Apr 10, 2025 pm 10:51 PM

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

MySQL: Eine Einführung in die beliebteste Datenbank der Welt MySQL: Eine Einführung in die beliebteste Datenbank der Welt Apr 12, 2025 am 12:18 AM

MySQL ist ein Open Source Relational Database Management -System, das hauptsächlich zum schnellen und zuverlässigen Speicher und Abrufen von Daten verwendet wird. Sein Arbeitsprinzip umfasst Kundenanfragen, Abfragebedingungen, Ausführung von Abfragen und Rückgabergebnissen. Beispiele für die Nutzung sind das Erstellen von Tabellen, das Einsetzen und Abfragen von Daten sowie erweiterte Funktionen wie Join -Operationen. Häufige Fehler umfassen SQL -Syntax, Datentypen und Berechtigungen sowie Optimierungsvorschläge umfassen die Verwendung von Indizes, optimierte Abfragen und die Partitionierung von Tabellen.

So verwenden Sie ein einzelnes Gewinde -Redis So verwenden Sie ein einzelnes Gewinde -Redis Apr 10, 2025 pm 07:12 PM

Redis verwendet eine einzelne Gewindearchitektur, um hohe Leistung, Einfachheit und Konsistenz zu bieten. Es wird E/A-Multiplexing, Ereignisschleifen, nicht blockierende E/A und gemeinsame Speicher verwendet, um die Parallelität zu verbessern, jedoch mit Einschränkungen von Gleichzeitbeschränkungen, einem einzelnen Ausfallpunkt und ungeeigneter Schreib-intensiver Workloads.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Warum MySQL verwenden? Vorteile und Vorteile Warum MySQL verwenden? Vorteile und Vorteile Apr 12, 2025 am 12:17 AM

MySQL wird für seine Leistung, Zuverlässigkeit, Benutzerfreundlichkeit und Unterstützung der Gemeinschaft ausgewählt. 1.MYSQL bietet effiziente Datenspeicher- und Abruffunktionen, die mehrere Datentypen und erweiterte Abfragevorgänge unterstützen. 2. Übernehmen Sie die Architektur der Client-Server und mehrere Speichermotoren, um die Transaktion und die Abfrageoptimierung zu unterstützen. 3. Einfach zu bedienend unterstützt eine Vielzahl von Betriebssystemen und Programmiersprachen. V.

So stellen Sie eine Verbindung zur Datenbank von Apache her So stellen Sie eine Verbindung zur Datenbank von Apache her Apr 13, 2025 pm 01:03 PM

Apache verbindet eine Verbindung zu einer Datenbank erfordert die folgenden Schritte: Installieren Sie den Datenbanktreiber. Konfigurieren Sie die Datei web.xml, um einen Verbindungspool zu erstellen. Erstellen Sie eine JDBC -Datenquelle und geben Sie die Verbindungseinstellungen an. Verwenden Sie die JDBC -API, um über den Java -Code auf die Datenbank zuzugreifen, einschließlich Verbindungen, Erstellen von Anweisungen, Bindungsparametern, Ausführung von Abfragen oder Aktualisierungen und Verarbeitungsergebnissen.

So starten Sie MySQL von Docker So starten Sie MySQL von Docker Apr 15, 2025 pm 12:09 PM

Der Prozess des Startens von MySQL in Docker besteht aus den folgenden Schritten: Ziehen Sie das MySQL -Image zum Erstellen und Starten des Containers an, setzen

CentOS installieren MySQL CentOS installieren MySQL Apr 14, 2025 pm 08:09 PM

Die Installation von MySQL auf CentOS umfasst die folgenden Schritte: Hinzufügen der entsprechenden MySQL Yum -Quelle. Führen Sie den Befehl mySQL-server aus, um den MySQL-Server zu installieren. Verwenden Sie den Befehl mySQL_SECURE_INSTALLATION, um Sicherheitseinstellungen vorzunehmen, z. B. das Festlegen des Stammbenutzerkennworts. Passen Sie die MySQL -Konfigurationsdatei nach Bedarf an. Tune MySQL -Parameter und optimieren Sie Datenbanken für die Leistung.

See all articles