MySQL数据库中的排序与缓存_数据恢复软件快速

日期:2014-07-13 / 人气: / 来源:网络

MySQL排序会增加Sort_merge_passes ,MySQL 就会把每次在内存中排序的结果存到临时文件中,找到记录后,会再次排序。

MySQL排序使用情况:
mysql> show global status like 'sort%';  
------------------- ------------  
| Variable_name | Value |  
------------------- ------------  
| Sort_merge_passes | 29 |  
| Sort_range | 37432840 |  
| Sort_rows | 9178691532 |  
| Sort_scan | 1860569 |  
------------------- ------------  
Sort_merge_passes 包括两步。MySQL 首先会尝试在内存中做排序,使用的内存大小由系统变量 Sort_buffer_size 决定,如果它的大小不够把所有的记录都读到内存中,MySQL 就会把每次在内存中排序的结果存到临时文件中,等 MySQL 找到所有记录之后,再把临时文件中的记录做一次排序。
再次排序就会增加 Sort_merge_passes。实际上,MySQL 会用另一个临时文件来存再次排序的结果,所以通常会看到 Sort_merge_passes 增加的数值是建临时文件数的两倍。
因为用到了临时文件,所以速度可能会比较慢,增加 Sort_buffer_size 会减少 Sort_merge_passes 和 创建临时文件的次数。但盲目的增加 Sort_buffer_size 并不一定能提高速度。
另外,增加read_rnd_buffer_size(3.2.3是record_rnd_buffer_size)的值对排序的操作也有一点的好处。

MySQL数据库show processlist命令详细说明

SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladminprocesslist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。请参见13.

MySQL

作者:管理员




现在致电4006-2991-90 OR 查看更多联系方式 →

Go To Top 回顶部