資料庫相關知識

2021-07-27 17:07:11 字數 818 閱讀 7820

1儲存過程和函式的區別

儲存過程是使用者定義的一系列sql語句的集合,涉及特定表或其它物件的任務,使用者可以呼叫儲存過程,而函式通常是資料庫已定義的方法,它接收引數並返回某種型別的值並且不涉及特定使用者表。

1.       事務是什麼?

事務是作為乙個邏輯單元執行的一系列操作,乙個邏輯工作單元必須有四個屬性,稱為 acid(原子性、一致性、隔離性和永續性)屬性,只有這樣才能成為乙個事務:原子性:事務必須是原子工作單元;對於其資料修改,要麼全都執行,要麼全都不執行。一致性:事務在完成時,必須使所有的資料都保持一致狀態。在相關資料庫中,所有規則都必須應用於事務的修改,以保持所有資料的完整性。事務結束時,所有的內部資料結構(如 b 樹索引或雙向鍊錶)都必須是正確的。隔離性:由併發事務所作的修改必須與任何其它併發事務所作的修改隔離。事務檢視資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀態,要麼是另一事務修改它之後的狀態,事務不會檢視中間狀態的資料。這稱為可序列性,因為它能夠重新裝載起始資料,並且重播一系列事務,以使資料結束時的狀態與原始事務執行的狀態相同。永續性:事務完成之後,它對於系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

3.游標的作用?如何知道游標已經到了最後?

游標用於定位結果集的行,通過判斷全域性變數@@fetch_status可以判斷是否到了最後,通常此變數不等於0表示出錯或到了最後。

4.觸發器分為事前觸發和事後觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別。

事前觸發器執行於觸發事件發生之前,而事後觸發器執行於觸發事件發生之後。通常事前觸發器可以獲取事件之前和新的字段值。

語句級觸發器可以在語句執行前或後執行,而行級觸發在觸發器所影響的每一行觸發一次。

資料庫相關知識

innodb和myisam資料庫引擎的區別 對比項innodb myisam事務 外來鍵 索引聚集索引,使用b tree作為索引結構,資料檔案是和 主鍵 索引綁在一起,5.7以前的innodb不支援全文索引支援全文索引,在涉及全文索引領域的查詢效率上myisam速度更快高 主鍵必須有主鍵 使用者沒有...

資料庫索引相關知識

查詢條件欄位和排序字段,新增聯合索引,查詢條件欄位在聯合索引的前面 整數型別比字元型別處理開銷更小 盡量避免null,應該指定列為 not null,使用乙個特殊的值 0,或者空值 來代替null 含有null的列很難進行查詢優化,建立索引的原則 1.對於查詢中很少涉及的列或者重複值比較多的列,不要...

資料庫的相關知識

儲存過程是一些預編譯的sql語句,直白的說儲存過程是乙個記錄集,它是由一些sql語句組成的 塊,這些 塊想乙個方法一樣實現一些功能,然後再給這個 塊起乙個名字,在用到這個功能的時候呼叫.儲存過程是乙個與編譯的 塊,執行的效率比較高 儲存過程替代了大量的sql語句,降低了網路通訊量,提高通訊速率,一定...