程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL排序使用情況

MySQL排序使用情況

編輯:MySQL綜合教程

MySQL排序會增加Sort_merge_passes ,MySQL 就會把每次在內存中排序的結果存到臨時文件中,找到記錄後,會再次排序。

MySQL排序使用情況:

  1. mysql> show global status like 'sort%';  
  2. +-------------------+------------+  
  3. | Variable_name | Value |  
  4. +-------------------+------------+  
  5. | Sort_merge_passes | 29 |  
  6. | Sort_range | 37432840 |  
  7. | Sort_rows | 9178691532 |  
  8. | Sort_scan | 1860569 |  
  9. +-------------------+------------+ 

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慢查詢的啟用方法

Mysql多表查詢的實現

Liunx下修改MySQL字符集的方法

帶您了解mysql變量

MySQL root用戶密碼忘記的處理方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved