Maison > Article > base de données > Performances MySQL, surveillance et reprise après sinistre
Solution de supervision :
up.time http://www.php.cn/ 收费 Cacti http://www.php.cn/ KDE System Guard(KSysGuard) http://www.php.cn/ Gnome System Monitor http://www.php.cn/ Nagios http://www.php.cn/ Shinken http://www.php.cn/ (个人觉得比nagios好用) Sun Management Center http://www.php.cn/ MySQL Enterprise Monitor http://www.php.cn/
Linux et Outil de surveillance du système UNIX
ps 系统进程 top cpu使用率排序的活动进程 vmstat 显示分页、内存、块传输、cpu活动相关 uptime 显示系统运行时间及1、5、15分钟系统平均负载 free 显示内存使用率 iostat 显示平均磁盘活动和处理器负载 centos: yum install sysstat sar 系统活动报告、允许收集和报告各种系统活动 pmap 显示各种进程分别占用内存情况 mpstat 多处理器系统的cpu使用率 centos: yum install sysstat netstat 网络活动 cron 定时进程执行系统(计划任务)
Définir et lire les variables système
SHOW [GLOBAL | SESSION] VARIABLES; SET [GLOBAL | SESSION] <variable_name> = <value>; SET [@@global. | @@session. | @@] <variable_name>=<value>; SHOW STATUS; SHOW SESSION STATUS; SHOW GLOBAL STATUS;
Commande SQL
SHOW INDX FROM <table> //显示指定表的索引基数统计信息 SHOW PLUGINS //显示所有已知插件列表 SHOW [FULL] PROCESSLIST //显示系统上运行的所有线程。 SHOW [GLOBAL | SESSION] STATUS //显示所有系统变量值 SHOW TABLE [FROM <db>] STATUS //显示给定数据库的表的详情 SHOW [GLOBAL | SESSION] VARIABLES //显示系统变量
Afin d'afficher moins d'informations, vous pouvez utiliser la clause like 'a6f114c758be113d08282881423b4728' Les symboles d'expression régulière et les symboles de contrôle standard de MySQL peuvent être utilisés dans l'instruction like
SHOW ENGINE <engine_name> LOGS //显示指定存储引擎的日志信息 SHOW ENGINE <engine_name> STATUS //显示指定存储引擎状态信息 SHOW ENGINES //显示所有可用的存储引擎的列表及状态 SHOW BINARY LOGS //显示服务器二进制LOG列表 SHOW RELAYLOG EVENTS [IN '<log_file>'] [FROM <pos>] [LIMIT [<offset>, ] <row count>] //仅限制查看Slave上的中继日志 SHOW MASTER STATUS //显示Master当前配置,显示当前二进制日志文件,文件位置等 SHOW SLAVE HOSTS //使用--report-host 选项显示连接到Master的slave列表 SHOW SLAVE STATUS //显示复制中slave的系统状态
Outils d'interface graphique MySQL
MySQL Administrator MySQL Query Browser MySQL Migration Toolkit //用于自动从其他数据库系统上迁移数据
Outils tiers
MySAR 系统活动报告 mytop 监控线程统计信息和Mysql常规性能统计信息 innotop 用于监控InnoDB性能和MySQL服务器 MONyog (MySQL Monitor and Advisor) mysql监控工具,主动监控方案 MySQL Benchmark套件 MySQL基准测试 ./run-all-tests --server=mysql --cmp=mysql --user=root --socket=<socket>
Mesurer les performances de la base de données
EXPLAIN 分析关于如何执行SELECT语句的信息 ANALYZE [ LOCAL | NO_WRUTE_TO_BINLOG ] TABLE #[ LOCAL | NO_WRUTE_TO_BINLOG ] 可防止命令写入二进制日志。 SHOW INDEX FROM TABLE OPTIMIZE [ LOCAL | NO_WRUTE_TO_BINLOG ] TABLE <table_list> #重构一个或多个表的数据结构,整理存储空间 SHOW FULL PROCESSLIST; 查看所有进程信息
Optimisation de la base de données
1. Utiliser les index avec précaution et efficacité
2. Utilisez standardisé (paradigme), mais ne surdosez pas
3. Utilisez le bon moteur de stockage
Alter Table T1 Engine = Memory; 🎜>
Bonnes pratiques pour améliorer les performances
1. Tout est lent (vérifiez le problème)
* Vérifiez le matériel
* Améliorez l'environnement matériel (comme ajout d'un disque dur)
* Envisagez de migrer les données vers un disque séparé
* Vérifiez si la configuration du système d'exploitation est correcte
* Envisagez de migrer certaines applications vers d'autres serveurs
* Envisagez une réplication évolutive
* Optimiser les performances du serveur
2. Requêtes lentes
* Schéma de base de données normalisé
* Utilisez EXPLAIN pour identifier index manquants ou incorrects
* Utilisez la fonction benchmark() pour tester une partie de la requête
* Pensez à réécrire la requête
* Utilisez des vues pour les requêtes standards
* Activer le cache de requêtes
3. Applications lentes
* Activer le cache de requêtes
* Envisager et optimiser le moteur de stockage
* Confirmez s'il s'agit d'un problème de serveur ou de système d'exploitation
* Définissez une référence pour l'application et comparez-la à une référence connue
* Vérifiez les éléments internes (dans l'application (écrit à l'intérieur le programme) requêtes et maximiser leurs performances
* Diviser pour régner - vérifier une seule partie à la fois
* Utiliser des classes de partitionnement pour disperser les données
* Vérifier les partitions individuelles Index
4. Copie lente
* 确保网络运行状况最佳
* 确保服务器配置正确
* 优化数据库
* 限制 Master 的更新
* 将数据读取划分到多个Slave中
* 检查Slave 的复制延迟
* 定期维护日志(二进制日志和中继日志)
* 在带宽有限的情况下,使用压缩
* 使用包容性和排他性日志选项,最小化复制内容
数据引擎的优化和监控
MyISAM实用工具
* myisam_ftdump: 显示全文索引信息
* myisamchk : 执行MyISAM 表的分析(只能在脱机状态使用)
* myisamlog : 查看MyISAM 表的更改日志
* myisampack:压缩表以减少存储量
Key Cache
1、预加载Key Cache
#将salary表的索引加载到key cache中,ignore leaves: 表明只加载索引的非叶子节点,可通过修改表的方式从Key cache中移除相关索引
mysql> load index into cache salaries ignore leaves;
2、使用多个Key Cache
#使用耳机主缓存
mysql> set global emp_cache.key_buffer_size = 128*1024; //128K mysql> cache index salaries in emp_cache; mysql> set global emp_cache.key_buffer_size=0;
Dans un fichier, utilisez la commande init-file=579760867874dd6b866a2ef9c2539347 dans la section [mysqld] du fichier de configuration mysql pour exécuter le fichier.
Ce qui précède est le contenu des performances, de la surveillance et de la reprise après sinistre de MySQL. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !