2、常見的儲存引擎及特性(***)
3、查詢語句(*****)
4、常見索引有哪些(*****)
5、sql優化有哪些方法(*****)
6、簡述一下sql的編譯過程(***)
(星號表示遇到的頻率)
1、事務
1.1 事務的特性(****)
1.2 隔離級別
1.2.1 併發引起的問題(***)
1.2.2 事務的隔離級別(*****)
事務的隔離級別越高,越能保證資料的完整性和一致性,但是對併發的的影響也越大。
2、常見的儲存引擎及特性(***)
2.1 innodb(*****)
2.2 myisam
2.3 memory
2.4 innodb和myisam的區別
1、myisam是非事務安全的,而innodb是事務安全的
2、myisam鎖的粒度是表級的,而innodb支援行級鎖
3、myisam支援全文型別索引,而innodb不支援全文索引
4、myisam相對簡單,效率上要優於innodb,小型應用可以考慮使用myisam
5、myisam表儲存成檔案形式,跨平台使用更加方便
6、myisam管理非事務表,提供高速儲存和檢索以及全文搜尋能力,如果在應用中執行大量select操作可選擇
7、innodb用於事務處理,具有acid事務支援等特性,如果在應用中執行大量insert和update操作,可選擇。
3、查詢語句(*****)
通常手撕資料庫的多表查詢,偶爾問一些關鍵字的使用順序
4、常見索引有哪些(*****)
4.1 聚集索引、非聚集索引(***)
4.2 普通索引、主鍵索引、唯一索引、組合索引、全文索引(*****)
4.3 b+tree索引、hash索引(****)
4.4 索引底層實現原理(包含btree和b+tree的區別)(*****)
這裡需要展示更直觀一些(b樹就是b-樹),找了乙個講的不錯的部落格: b樹和b+樹
5、sql優化有哪些方法(*****)
6、簡述一下sql的編譯過程(***)
大致過程:
客戶端傳送查詢語句給伺服器。
伺服器首先檢查快取中是否存在該查詢,若存在,返回快取中存在的結果。若是不存在就進行下一步。
伺服器進行sql的解析、語法檢測和預處理,再由優化器生成對應的執行計畫。
mysql的執行器根據優化器生成的執行計畫執行,呼叫儲存引擎的介面進行查詢。
伺服器將查詢的結果返回客戶端。
具體的參考:sql語句執行過程
面試中遇到的那些程式設計題
if typeof string.prototype.countcharacters function len this.length for i 0 i len i else var max key,max num 0 for var key in obj return 測試 var str ab...
遇到的資料庫面試題
1 mysql和oracle的in的區別 mysql的in後面的引數沒有個數的限制,而oracle的in後面的引數限制為1000個。2 mysql的in和exist的區別 exist是對外表進行loop迴圈,每次loop迴圈再對內表 子查詢 進行查詢,內錶根據索引查詢,速度快,可以用大表,外表查詢速...
資料庫中的那些「鎖」
資料庫作為多使用者共享資源,同一時刻會有很多的使用者來訪問這一公共資源。當多個使用者併發訪問的時候,資料庫需要合理的控制資源的訪問規則,來保證資料讀寫的正確性。而鎖就是用來實現這些訪問規則的重要手段。在資料庫中存在各種各樣的鎖。以mysql為例,資料庫中的鎖,大概有如下幾種 根據資料操作的方式,資料...