Heim  >  Artikel  >  Datenbank  >  MySQL verwendet die Prozeduranalyse()-Funktion, um die Tabellenstruktur zu optimieren

MySQL verwendet die Prozeduranalyse()-Funktion, um die Tabellenstruktur zu optimieren

黄舟
黄舟Original
2017-01-18 11:15:061711Durchsuche

Relationales MySQL-Datenbankverwaltungssystem

MySQL ist ein kleines relationales Open-Source-Datenbankverwaltungssystem, das von der schwedischen Firma MySQL AB entwickelt wurde. MySQL wird häufig auf kleinen und mittelgroßen Websites im Internet verwendet. Aufgrund der geringen Größe, der hohen Geschwindigkeit, der niedrigen Gesamtbetriebskosten und insbesondere der Eigenschaften von Open Source wählen viele kleine und mittlere Websites MySQL als Website-Datenbank, um die Gesamtbetriebskosten der Website zu senken.


Ich frage mich, ob Sie jemals frustriert darüber waren, welche Art von Feldern Sie für die MySQL-Tabellenstruktur auswählen sollten? Oder sind Sie unsicher, welche Länge Sie für ein MySQL-Feld wählen sollen? Im folgenden Artikel werde ich Ihnen ein Kampfkunstgeheimnis vorstellen, das ich erst kürzlich erfahren habe. Interessierte können unten einen Blick darauf werfen.

Einführung

Die Prozedur-Analyse()-Funktion ist der in MySQL integrierte Feldtyp, der statistische Analysen für MySQL-Feldwerte durchführt und Vorschläge macht.

Syntax

procesure analyse(max_elements,max_memory)

max_elements

Gibt den Maximalwert der sich nicht wiederholenden Werte in jeder Spalte an. Wenn dieser Wert überschritten wird, wird MySQL dies nicht tun Empfehlen Sie den Enum-Typ.

max_memory

analyse() ermittelt die maximale Speichergröße, die für alle unterschiedlichen Werte für jede Spalte verwendet wird.

Praktische Übung

# 对t1表所有的列进行分析
wing@3306>show create table t1;
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table                                                                   |
+-------+---------------------------------------------------------------------------------------------------------------------------------------------------------+
| t1  | CREATE TABLE `t1` (
 `id` int(11) DEFAULT NULL,
 `name` varchar(16) DEFAULT NULL,
 `score` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+--------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
wing@3306>select * from t1 procedure analyse(4);
+---------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+-------------+---------------------------+
| Field_name | Min_value | Max_value | Min_length | Max_length | Empties_or_zeros | Nulls | Avg_value_or_avg_length | Std | Optimal_fieldtype |
+---------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+-------------+---------------------------+
| wing.t1.id  | 1    | 200000  |    1 |    6 |     0 |   0 | 100000.5000  | 116099.2790 | MEDIUMINT(6) UNSIGNED NOT NULL |
| wing.t1.name | 000jxc6V | zzznmkcX |     8 |     8 |      0 |   0 | 8.0000  | NULL    | CHAR(8) NOT NULL     |
| wing.t1.score | 1   | 100  |  1 | 3 |  0 |   0 | 50.4889  | 28.8768 | TINYINT(3) UNSIGNED NOT NULL  |
+---------------+-----------+-----------+------------+------------+------------------+-------+-------------------------+-------------+---------------------------+
3 rows in set (0.14 sec)

Zusammenfassung

Das Obige dreht sich alles um die Funktion „analyze()“ in MySQL. Weitere verwandte Inhalte finden Sie hier PHP Chinese Net (www.php.cn)!



Stellungnahme:
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