mysql:
在mysql資料庫中,常用的引擎主要就是2個:innodb和myiasm。
1.簡單介紹這兩種引擎,以及該如何去選擇
a.innodb引擎,innodb引擎提供了對資料庫acid事務的支援。並且還提供了行級鎖和外來鍵的約束。它的設計的目標就是處理大資料容量的資料庫系統。它本身實際上是基於mysql後台的完整的系統。mysql執行的時候,innodb會在記憶體中建立緩衝池,用於緩衝資料和索引。但是,該引擎是不支援全文搜尋的。同時,啟動也比較的慢,它是不會儲存表的行數的。當進行select count(*) from table指令的時候,需要進行掃瞄全表。所以當需要使用資料庫的事務時,該引擎就是首選。由於鎖的粒度小,寫操作是不會鎖定全表的。所以在併發度較高的場景下使用會提公升效率的。
b.myiasm引擎,它是mysql的預設引擎,但不提供事務的支援,也不支援行級鎖和外來鍵。因此當執行insert插入和update更新語句時,即執行寫操作的時候需要鎖定這個表。所以會導致效率會降低。不過和innodb不同的是,myiasm引擎是儲存了表的行數,於是當進行select count(*) from table語句時,可以直接的讀取已經儲存的值而不需要進行掃瞄全表。所以,如果表的讀操作遠遠多於寫操作時,並且不需要事務的支援的。可以將myiasm作為資料庫引擎的首先。
補充2點:
c.大容量的資料集時趨向於選擇innodb。因為它支援事務處理和故障的恢復。innodb可以利用資料日誌來進行資料的恢復。主鍵的查詢在innodb也是比較快的。
d.大批量的插入語句時(這裡是insert語句)在myiasm引擎中執行的比較的快,但是update語句在innodb下執行的會比較的快,尤其是在併發量大的時候。
2.兩種引擎所使用的索引的資料結構是什麼?
答案:都是b+樹!
myiasm引擎,b+樹的資料結構中儲存的內容實際上是實際資料的位址值。也就是說它的索引和實際資料是分開的,只不過使用索引指向了實際資料。這種索引的模式被稱為非聚集索引。
innodb引擎的索引的資料結構也是b+樹,只不過資料結構中儲存的都是實際的資料,這種索引有被稱為聚集索引
oracle
oracle中不存在引擎的概念,資料處理大致可以分成兩大類:聯機事務處理oltp(on-line transaction processing)、聯機分析處理olap(on-line analytical processing)。oltp是傳統的關係型資料庫的主要應用,主要是基本的、日常的事務處理,例如銀行交易。olap是資料倉儲系統的主要應用,支援複雜的分析操作,側重決策支援,並且提供直觀易懂的查詢結果。
oltp 系統強調資料庫記憶體效率,強調記憶體各種指標的命令率,強調繫結變數,強調併發操作;
olap 系統則強調資料分析,強調sql執行市場,強調磁碟i/o,強調分割槽等。
MySQL和Oracle常用日期轉換函式
mysql date time to str 日期 時間轉換為字串 函式 date format date,format time format time,format 日期轉字串 select date format jzksrq,y c d h i s 日期 from healthtest.mb...
mysql和Oracle常用命令筆記
登入 mysql u 賬號 p 密碼 create table table name column name1 varchar size not null primary key,column name2 int size default 999 column name3 date default ...
MySql和Oracle的區別
1.mysql和oracle的日期轉換 mysql中有2種日期格式date和time,oracle只有一種日期格式date。oracle select to char sysdate,yyyy mm dd from dual oracle select to char sysdate,hh24 mi...