Heim >Datenbank >MySQL-Tutorial >Hinweise zur MySQL-Optimierung

Hinweise zur MySQL-Optimierung

coldplay.xixi
coldplay.xixinach vorne
2020-12-16 09:31:582230Durchsuche

Einführung in die Optimierungsmethode von MySQL

Empfohlen (kostenlos): Hinweise zur MySQL-Optimierung

Mysql-Video-Tutorial Lernnotizen aufzeichnen, ständig aktualisiert.

Optimierungsrichtung

SQL-Optimierung

SQL-Optimierungsanalyse

Indexoptimierung
  1. Datenbankobjekte optimieren

Datentyp der Tabelle optimieren

Tabellenaufteilung. (horizontal) ontal, vertikal)
  1. Anti-Paradigma
  2. Zwischentabellen verwenden
  3. MySQL-Server optimieren

MySQL-Speicherverwaltungsoptimierung

Protokollmechanismus und -Optimierung
  1. MySQL-Parallelitätsparameter anpassen
  2. Anwendungsoptimierung

Datenbankverbindungspool

Cache reduzieren den Druck
  1. Lastausgleich schafft Cluster
  2. Master-Master-Synchronisation, Master-Slave-Replikation
  3. MySQL-Optimierungsproblemanalyse und -positionierung

SQL-Ausführungshäufigkeit analysieren

show status

例如:分析读为主,还是写为主

Lokalisieren. SQL mit niedrig Ausführungseffizienz etion

慢查询日志定位-log-slow-queries = xxx(指定文件名)SHOW PROCESSLIST查看当前正在进行的线程,包括线程状态、是否锁表

Mysq-Indizes kann in Situationen verwendet werden, in denen Indizes nicht verwendet werden können

Datenbankobjekte optimieren

Optimieren Sie den Tabellendatentyp
explain "your sql"desc "your sql"- 部分参数分析
select_type: SIMPLE 简单表,不使用表连接或子查询PRIMARY 主查询,即外层的查询UNION SUBQUER 子查询的第一个select

type: ALL 全表扫描
index 索引全扫描
range 索引范围扫描
ref 使用非唯一索引或唯一索引的前缀扫描
eq_ref 类似ref,使用的索引是唯一索引const/system 单表中最多有一个匹配行NULL 不用访问表或者索引,直接得到结果

Tabellenaufteilung
select @@have_profiling 是否支持
select @@profiling 是否开启

执行 "your sql"show profiles 
show profile block io for QUERY 17

Anti-Paradigma
B-TREE索引:常见,大部分都支持HASH索引:只有memory引擎支持R-TREE索引:空间索引是MyISAM的一个特殊索引类型,主要用于地理空间数据类型
full-text索引:全文索引,MyISAM的一个特殊索引类型,innodb从5.6开始支持

unter Verwendung von Zwischentabellen
添加索引ALTER Table `table_name` ADD PRIMARY KEY(`column`)ALTER Table `table_name` ADD UNIQUE(`column`)ALTER Table `table_name` ADD INDEX(`column`)ALTER Table `table_name` ADD FULLTEXT(`column`)

删除ALTER Table `table_name` drop index index_name

MySQL-Engine-Vergleich

Welche Engine hat MySQL?

Über Tabellen-Engine-Befehle

匹配全值
匹配值范围查询
匹配最左前缀
仅仅对索引进行查询(覆盖查询)
匹配列前缀 (添加前缀索引)
部分精确+部分范围

Über innodb

以%开关的like查询
数据类型出现隐式转换
复合索引查询条件不包含最左部分
使用索引仍比全表扫描慢
用or分割开的条件

Über MyISAM

optimize table table_name 合并表空间碎片,对MyISAM、BDB、INNODB有效

如果提示不支持,可以用 mysql --skip-new 或者 mysql --safe-mode 来重启,以便让其他引擎支持

Passen Sie Parameter an, um den MySQL-Hintergrunddienst zu optimieren

MyISAM-Speicheroptimierung

尽量避免全表扫描,对where及orderby的列建立索引
尽量避免where使用 != 或 <>尽量避免where子句用 or 连接条件
乱用%导致全表扫描
尽量避免where子句对字段进行表达式操作
尽量避免where子句对字段进行函数操作
覆盖查询,返回需要的字段
优化嵌套查询,关联查询优于子查询
组合索引或复合索引,最左索引原则
用exist代替in当索引列有大量重复数据时,SQL查询可能不会去利用索引

InnoDB Speicheroptimierung

MySQL-Parallelitätsparameter

PROCEDURE ANALYSE (16,256) 排除多于16个,大于256字节的ENUM建议"your sql" PROCEDURE ANALYSE ()

Einführung in die MySQL-Anwendungsoptimierung

Warum müssen wir eine Anwendungsoptimierung durchführen? Die Bedeutung von Daten

MySQL-Dienst und seine eigene Leistung Hälse Stellen Sie die Stabilität und Zuverlässigkeit großer Systeme sicher. Führen Sie

MySQL 优化笔记

Optimierungsmethode an

Verwenden Sie den Verbindungspool

, um die tatsächliche Verbindung zu MySQL zu reduzieren a. Vermeiden Sie die wiederholte Ausführung derselben Daten (Abfragecache). ) b. MySQL-Cache (SQL-Cache) verwenden

Lastausgleich a. Lese- und Schreibtrennung (Master-Master-Replikation, Master-Slave-Replikation gewährleistet Datenkonsistenz)

Datenbank Verbindungspoolphp-cp-Erweiterung, notieren Sie dies einfach. Diese Lösung ist möglicherweise veraltet

Master-Slave-Backup und Lese-/Schreib-Trennung

Master-Master-Backup

Lastausgleich

Verwandte kostenlose Lernempfehlungen: php-Programmierung (Video)

Das obige ist der detaillierte Inhalt vonHinweise zur MySQL-Optimierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen