【Oracle】-【插入讀取順序】-插入讀取之間的順序關係
Oracle插入記錄的順序是否是讀取的順序?
通過一個簡單的實驗驗證:
SQL> create table t
( x int,
a char(2000) default 'x',
b char(2000) default 'x',
c char(2000) default 'x');
Table created.
SQL> insert into t (x) values ( 1 );
1 row created.
SQL> insert into t (x) values ( 2);
1 row created.
SQL> insert into t (x) values ( 3);
1 row created.
SQL> commit;
Commit complete.
SQL> select x, rownum, rowid from t;
X ROWNUM ROWID
---------- ---------- ------------------
3 1 AAAOXNAAHAAAAasAAA
1 2 AAAOXNAAHAAAAavAAA
2 3 AAAOXNAAHAAAAawAAA
SQL> delete from t where x = 2;
1 row deleted.
SQL> commit;
Commit complete.
SQL> select x, rownum, rowid from t;
X ROWNUM ROWID
---------- ---------- ------------------
3 1 AAAOXNAAHAAAAasAAA
1 2 AAAOXNAAHAAAAavAAA
SQL> insert into t (x) values ( 4 );
1 row created.
SQL> select x, rownum, rowid from t;
X ROWNUM ROWID
---------- ---------- ------------------
3 1 AAAOXNAAHAAAAasAAA
1 2 AAAOXNAAHAAAAavAAA
4 3 AAAOXNAAHAAAAawAAA
insert into t (x) values ( 5);
SQL> select x, rownum, rowid from t;
X ROWNUM ROWID
---------- ---------- ------------------
3 1 AAAOXNAAHAAAAasAAA
5 2 AAAOXNAAHAAAAatAAA
1 3 AAAOXNAAHAAAAavAAA
4 4 AAAOXNAAHAAAAawAAA
SQL> insert into t (x) values ( 10);
1 row created.
SQL> select x, rownum, rowid from t;
X ROWNUM ROWID
---------- ---------- ------------------
3 1 AAAOXNAAHAAAAasAAA
5 2 AAAOXNAAHAAAAatAAA
10 3 AAAOXNAAHAAAAauAAA
1 4 AAAOXNAAHAAAAavAAA
4 5 AAAOXNAAHAAAAawAAA
可見Oracle讀取時按照記錄的ROWID預設升序排列的,Oracle是一種堆表(預設),堆的意思就是雜亂無章的,插入資料時是根據內部演算法,找到可用的資料塊,一般出於效率的考慮,不採用原來的空間,用邏輯塊的新空間,讀取的順序與COMMIT也沒有直接關係,所以要排序,最好用ORDER BY。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7192724/viewspace-767686/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 順序表有序插入資料
- PHP中foreach讀取順序PHP
- jsoncpp按寫入順序讀取JSON
- 美團二面:SpringBoot讀取配置優先順序順序是什麼?Spring Boot
- MySQL:讀取my.cnf的順序問題MySql
- 5-順序表查詢及插入問題
- Mysql關於my.cnf引數檔案的讀取順序及各項配置的覆蓋優先順序MySql
- c語言順序棧常規插入刪除操作C語言
- 深入探究.Net Core Configuration讀取配置的優先順序
- java繼承關係下執行順序Java繼承
- 單連結串列基本介紹以及按照順序插入節點
- 如何修改 VoiceOver 朗讀控制元件的順序控制元件
- 學Java,Java書籍的最佳閱讀順序Java
- 資料結構_順序表_順序表的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- python運算子及優先順序順序Python
- spring boot學習(6)— 配置資訊及其讀取優先順序Spring Boot
- JVM載入TimeZone讀取檔案優先順序實戰分析JVM
- 順序表
- 第2章 順序表及其順序儲存
- 關於RocketMQ的順序訊息MQ
- 關於 Promise 的執行順序Promise
- mysql 中sql語句關鍵字的書寫順序與執行順序MySql
- MapStruct與lombok載入順序問題與annotationProcessorPaths的關係?StructLombok
- php名稱空間的呼叫順序PHP
- SpringBoot配置檔案優先順序載入順序Spring Boot
- 順序表應用5:有序順序表歸併
- 順序表應用6:有序順序表查詢
- Git調整commit之間順序GitMIT
- 資料結構-邏輯關係&物理關係、時間複雜度、空間複雜度、順序表資料結構時間複雜度
- UML順序圖
- 順序查詢
- 順序結構
- 順序刷題
- svg06——svg中座標變換與順序的關係SVG
- (MariaDB/MySQL)MyISAM儲存引擎讀、寫操作的優先順序MySql儲存引擎
- 檔案隨機或順序讀寫原理深入淺出隨機
- python中按照資料夾中檔案的排列順序讀取檔案內容Python
- MySQL log_timestamps引數與mysql資料庫讀取my.cnf的順序MySql資料庫
- 順序表的學習