1.表級鎖:開銷小,加鎖快;不會出現死鎖;鎖定粒度大,發生鎖衝突的概率最高,併發度最低。
2.行級鎖:開銷大,加鎖慢;會出現死鎖;鎖定粒度最小,發生鎖衝突的概率最低,併發度也最高。
3. 頁面鎖:開銷和加鎖時間界於表鎖和行鎖之間;會出現死鎖;鎖定粒度界於表鎖和行鎖之間,併發度一般。
共有5種型別的**:
myisam
heap
merge
innodb
isam
myisam:
不支援事務,但是每次查詢都是原子的;
支援表級鎖,即每次操作是對整個表加鎖;
儲存表的總行數;
乙個myisam表有三個檔案:索引檔案、表結構檔案、資料檔案;
採用菲聚集索引,索引檔案的資料域儲存指向資料檔案的指標。輔索引與主索引基本一致,但是輔索引不用保證唯一性。
innodb:
支援acid的事務,支援事務的四種隔離級別;
支援行級鎖及外來鍵約束:因此可以支援寫併發;
不儲存總行數;
乙個innodb引擎儲存在乙個檔案空間(共享表空間,表大小不受作業系統控制,乙個表可能分布在多個檔案裡),也有可能為多個(設定為獨立表空,表大小受作業系統檔案大小限制,一般為2g),受作業系統檔案大小的限制;
主鍵索引採用聚集索引(索引的資料域儲存資料檔案本身),輔索引的資料域儲存主鍵的值;因此從輔索引查詢資料,需要先通過輔索引找到主鍵值,再訪問輔索引;最好使用自增主鍵,防止插入資料時,為維持b+樹結構,檔案的大調整。
sql標準定義的四個隔離級別為:
read uncommited :讀到未提交資料
read committed:髒讀,不可重複讀
repeatable read:可重讀
serializable :序列事物
1.char和varchar型別在儲存和檢索方面有所不同
2.char列長度固定為建立表時宣告的長度,長度值範圍是1到255
當char值被儲存時,它們被用空格填充到特定長度,檢索char值時需刪除尾隨空格。
**的每一行都由主鍵唯一標識,乙個表只有乙個主鍵。
主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,並且可以用於任何外來鍵引用。
它用來壓縮myisam表,這減少了磁碟或記憶體使用。
myisam static和myisam dynamic有什麼區別?
在myisam static上的所有欄位有固定寬度。動態myisam表將具有像text,blob等字段,以適應不同長度的資料型別。
myisam static在受損情況下更容易恢復。
每當行被更改時,時間戳字段將獲取當前時間戳。
列設定為auto increment時,如果在表中達到最大值,會發生什麼情況?
它會停止遞增,任何進一步的插入都將產生錯誤,因為金鑰已被使用。
怎樣才能找出最後一次插入時分配了哪個自動增量?
last_insert_id將返回由auto_increment分配的最後乙個值,並且不需要指定表名稱。
索引是通過以下方式為**定義的:
show index from
;%對應於0個或更多字元,_只是like語句中的乙個字元。
如何在unix和mysql時間戳之間進行轉換?
unix_timestamp是從mysql時間戳轉換為unix時間戳的命令
from_unixtime是從unix時間戳轉換為mysql時間戳的命令
在select語句的列比較中使用=,<>,<=,<,> =,>,<<,>>,<=>,and,or或like運算子。
點讚+關注,私信我獲取mnc面試題全文!!
最新iOS面試題
最近公司在招聘ios崗位,然後暫時是我在面試,因為公司說要招聘乙個靠譜的,資深的ios,所以我會問的都是一些原理問題。當我收到簡歷的時候,我會仔細看一下簡歷上面的技術要點,先會問一些專案中的問題。如果答得可以,再繼續問我平時專案中接觸的一些技術,或者說常用的技術。下面我就整理了一下我的面試題 1 c...
微軟最新面試題10 30
總共四輪面試,一二輪平行面 過乙個就行了 三輪lead面,四輪aa面 10.21 約了兩面 一面 1.自我介紹 2.撕 暫時沒有在leetcode上面找到,只能口述了 微軟經典面試老題 中文字串轉成數字 比如輸入 一億一千一百零一萬一千一百零一 輸出 111011101 面試官人很好 因為c 處理中...
mysql 不用怕面試題 MySQL 面試題
資料庫事務的四個特性及含義原子性 atomicity 一致性 correspondence 隔離性 isolation 永續性 durability 原子性 整個事務中的所有操作,要麼全部完成,要麼全部不完成。事務在執行過程中發生錯誤,會被回滾 rollback 到事務開始前的狀態,就像這個事務從來...