程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL中Order By實現原理分析

MySQL中Order By實現原理分析

編輯:關於MYSQL數據庫

  下面將通過實例分析兩種排序實現方式及實現圖解:

  假設有 Table A 和 B 兩個表結構分別如下:

1 sky@localhost : example 01:48:21> show create table AG
2 
3 *************************** 1. row ***************************
4 
5 Table: A
6 
7 Create Table: CREATE TABLE `A` (
8 
9 `c1` int(11) NOT NULL default '0',
10 
11 `c2` char(2) default NULL,
12 
13 `c3` varchar(16) default NULL,
14 
15 `c4` datetime default NULL,
16 
17 PRIMARY KEY (`c1`)
18 
19 ) ENGINE=MyISAM DEFAULT CHARSET=utf8
20 
21 sky@localhost : example 01:48:32> show create table BG
22 
23 *************************** 1. row ***************************
24 
25 Table: B
26 
27 Create Table: CREATE TABLE `B` (
28 
29 `c1` int(11) NOT NULL default '0',
30 
31 `c2` char(2) default NULL,
32 
33 `c3` varchar(16) default NULL,
34 
35 PRIMARY KEY (`c1`),
36 
37 KEY `B_c2_ind` (`c2`)
38 
39 ) ENGINE=MyISAM DEFAULT CHARSET=utf8

  1、利用有序索引進行排序,實際上就是當我們Query 的ORDER BY 條件和Query 的執行計劃中所利用的Index的索引鍵(或前面幾個索引鍵)完全一致,且索引訪問方式為rang、ref 或者index的時候,MySQL可以利用索引順序而直接取得已經排好序的數據。這種方式的ORDER BY 基本上可以說是最優的排序方式了,因為MySQL不需要進行實際的排序操作。

  • 首頁
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁
  • 尾頁
  • 共6頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved