Mysql中有哪幾種鎖?
1.表級鎖:開銷小,加鎖快;不會出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率最高,并發(fā)度最低。
2.行級鎖:開銷大,加鎖慢;會出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也最高。
3. 頁面鎖:開銷和加鎖時間界于表鎖和行鎖之間;會出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般。
Mysql中有哪些不同的表格?
共有5種類型的表格:
MyISAM
Heap
Merge
INNODB
ISAM
簡述在MySQL數(shù)據(jù)庫中MyISAM和InnoDB的區(qū)別
MyISAM:
不支持事務(wù),但是每次查詢都是原子的;
支持表級鎖,即每次操作是對整個表加鎖;
存儲表的總行數(shù);
一個MYISAM表有三個文件:索引文件、表結(jié)構(gòu)文件、數(shù)據(jù)文件;
采用菲聚集索引,索引文件的數(shù)據(jù)域存儲指向數(shù)據(jù)文件的指針。輔索引與主索引基本一致,但是輔索引不用保證唯一性。
InnoDb:
支持ACID的事務(wù),支持事務(wù)的四種隔離級別;
支持行級鎖及外鍵約束:因此可以支持寫并發(fā);
不存儲總行數(shù);
一個InnoDb引擎存儲在一個文件空間(共享表空間,表大小不受操作系統(tǒng)控制,一個表可能分布在多個文件里),也有可能為多個(設(shè)置為獨立表空,表大小受操作系統(tǒng)文件大小限制,一般為2G),受操作系統(tǒng)文件大小的限制;
主鍵索引采用聚集索引(索引的數(shù)據(jù)域存儲數(shù)據(jù)文件本身),輔索引的數(shù)據(jù)域存儲主鍵的值;因此從輔索引查找數(shù)據(jù),需要先通過輔索引找到主鍵值,再訪問輔索引;最好使用自增主鍵,防止插入數(shù)據(jù)時,為維持B+樹結(jié)構(gòu),文件的大調(diào)整。
Mysql中InnoDB支持的四種事務(wù)隔離級別名稱,以及逐級之間的區(qū)別?
SQL標準定義的四個隔離級別為:
read uncommited :讀到未提交數(shù)據(jù)
read committed:臟讀,不可重復(fù)讀
repeatable read:可重讀
serializable :串行事物
CHAR和VARCHAR的區(qū)別?
1.CHAR和VARCHAR類型在存儲和檢索方面有所不同
2.CHAR列長度固定為創(chuàng)建表時聲明的長度,長度值范圍是1到255
當CHAR值被存儲時,它們被用空格填充到特定長度,檢索CHAR值時需刪除尾隨空格。
主鍵和候選鍵有什么區(qū)別?
表格的每一行都由主鍵唯一標識,一個表只有一個主鍵。
主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,并且可以用于任何外鍵引用。
myisamchk是用來做什么的?
它用來壓縮MyISAM表,這減少了磁盤或內(nèi)存使用。
MyISAM Static和MyISAM Dynamic有什么區(qū)別?
在MyISAM Static上的所有字段有固定寬度。動態(tài)MyISAM表將具有像TEXT,BLOB等字段,以適應(yīng)不同長度的數(shù)據(jù)類型。
MyISAM Static在受損情況下更容易恢復(fù)。
如果一個表有一列定義為TIMESTAMP,將發(fā)生什么?
每當行被更改時,時間戳字段將獲取當前時間戳。
列設(shè)置為AUTO INCREMENT時,如果在表中達到最大值,會發(fā)生什么情況?
它會停止遞增,任何進一步的插入都將產(chǎn)生錯誤,因為密鑰已被使用。
怎樣才能找出最后一次插入時分配了哪個自動增量?
LAST_INSERT_ID將返回由Auto_increment分配的最后一個值,并且不需要指定表名稱。
你怎么看到為表格定義的所有索引?
索引是通過以下方式為表格定義的:
SHOW INDEX FROM
;
LIKE聲明中的%和_是什么意思?
%對應(yīng)于0個或更多字符,_只是LIKE語句中的一個字符。
如何在Unix和Mysql時間戳之間進行轉(zhuǎn)換?
UNIX_TIMESTAMP是從Mysql時間戳轉(zhuǎn)換為Unix時間戳的命令
FROM_UNIXTIME是從Unix時間戳轉(zhuǎn)換為Mysql時間戳的命令
列對比運算符是什么?
在SELECT語句的列比較中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR或LIKE運算符。
?點贊+關(guān)注,私信我獲取MNC面試題全文!!

?

點贊+關(guān)注,私信我獲取MNC面試題全文?。?/b>