insert的不同場景效能比較
關於Insert的問題,可能在一些場景中會有完全不同的期望和結果,在日常工作使用的庫中,需要表在Logging模式,必要時需要一些索引
但在資料遷移中,可能為了提高速度,索引就需要考慮重建了。
我做了一些場景的測試,並且做了詳細的資料比對。
第一種場景:table在nologging模式下。並且表中沒有索引,
在插入不同資料量的時候,生成的redo和響應時間都有一定的幅度提升。
比如插入13240331條記錄時,響應時間為63秒,生成323219520bytes(300多M)的redo.
nologging+no index | ||
sec:misec | inserted rows | redo generated |
00.10 | 25862 | 635692 |
00.12 | 51723 | 1231620 |
00.18 | 103444 | 2461540 |
00.33 | 206885 | 4922516 |
00.67 | 413766 | 9840892 |
02.19 | 827527 | 19697976 |
09.90 | 1655048 | 40128988 |
15.68 | 3310089 | 80470212 |
33.89 | 6620170 | 161501892 |
63.28 | 13240331 | 323219520 |
第二種場景:table在logging模式下,表中沒有索引
logging+no index | ||
00.10 | 25862 | 635616 |
00.10 | 51723 | 1231620 |
00.17 | 103444 | 2461480 |
00.35 | 206885 | 4930208 |
00.68 | 413766 | 9841248 |
01.69 | 827527 | 19692980 |
06.94 | 1655048 | 40117876 |
16.66 | 3310089 | 80428640 |
41.23 | 6620170 | 161690412 |
72.47 | 13240331 | 323049996 |
總結:可以看到兩者基本上沒有任何變化
第三種場景:表在nologging模式,表中有主鍵,主鍵對應的索引處於logging模式
nologging+index(unique index) logging | ||
00.22 | 25862 | 1381736 |
00.32 | 51723 | 2733468 |
00.44 | 103444 | 5431700 |
01.15 | 206885 | 10872316 |
03.25 | 413766 | 21777088 |
07.69 | 827527 | 43521600 |
16.33 | 1655048 | 90658812 |
41.71 | 3310089 | 183135576 |
82.40 | 6620170 | 366262424 |
190.50 | 13240331 | 731534236 |
可能直接看不太明顯,如果有一個圖示就更清晰了。左邊的部分是採用logging,沒有索引的場景,可以看到已經有了成倍的變化。可見在有索引的時候對於insert來說,會產生大量的redo,響應時間也成倍提高。
第四種場景,表採用nologging模式,表中無索引,使用append模式插入資料。
nologging+no index+append | ||
00.14 | 25862 | 635632 |
00.14 | 51723 | 1231560 |
00.16 | 103444 | 2461480 |
00.33 | 206885 | 4922516 |
00.64 | 413766 | 9840848 |
01.52 | 827527 | 19697592 |
11.30 | 1655048 | 40165208 |
19.18 | 3310089 | 80450796 |
46.26 | 6620170 | 160910172 |
76.66 | 13240331 | 322991832 |
總結:可以看到在沒有索引的情況下,nologging+append模式和nologging基本沒有區別。
第五種場景:表處於nologging模式,表中有索引,處於Nologging模式。採用append插入資料。
可以看到採用index的logging和nologging模式,兩者也沒有明顯的變化
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-1178010/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java不同壓縮演算法的效能比較Java演算法
- Java中不同的併發實現的效能比較Java
- SAP CDS重定向檢視和直接讀這兩者場景的效能比較
- 不同DBMS的SQL比較SQL
- jmeter混合場景的多種實現方式比較JMeter
- 不同解決方案的比較
- 資料泵不同工作方式效能比較(六)
- 資料泵不同工作方式效能比較(五)
- 資料泵不同工作方式效能比較(四)
- 資料泵不同工作方式效能比較(三)
- 資料泵不同工作方式效能比較(二)
- 資料泵不同工作方式效能比較(一)
- 不同業務場景使用不同的map
- 不同Java垃圾回收器的比較Java
- 不同備份方法的特性比較
- 不同的Java垃圾回收器的比較Java
- ORACLE的Copy命令和create table,insert into的比較Oracle
- 關於insert /*+ append*/ 各種insert插入速度比較APP
- multi-key索引和wildCard索引場景比較索引
- Linux 比較不同命令Linux
- javascript訪問不同物件的速度比較JavaScript物件
- JAVA IO效能比較Java
- 批量更新效能比較
- 不同的連線方式效能對比!
- Java Bean Copy元件的效能比較JavaBean元件
- 七種WebSocket框架的效能比較Web框架
- eAccelerator的安裝和效能比較
- DECODE和CASE的效能比較
- 不同場景下 MySQL 的遷移方案MySql
- 不同Framework下StringBuilder和String的效能對比,及不同Framework效能比(附Demo)FrameworkUI
- 效能場景設計
- linux diff比較2個檔案的不同Linux
- Redis 不同插入方法的效能對比Redis
- 雲主機的硬碟IO效能比較硬碟
- PostgreSQL、Redis與Memcached的效能比較 - CYBERTECSQLRedis
- Linux壓縮工具的效能比較Linux
- [原]不同場景下MySQL的遷移方案MySql
- 主流的訊息佇列MQ比較,詳解MQ的4類應用場景佇列MQ