更新時(shí)間:2022-12-21 15:55:19 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1418次
隨著用戶的不斷增加,Mysql索引就顯得格外的重要,對(duì)于后端的程序員,肯定是需要了解索引以及優(yōu)化的規(guī)則,并且能夠在實(shí)際應(yīng)用中運(yùn)行。針對(duì) Mysql面試中常見的知識(shí)點(diǎn),小編例舉出了以下內(nèi)容,希望可以幫助到大家:
1、MySQL 中有哪幾種鎖?
1、表級(jí)鎖: 開銷小, 加鎖快; 不會(huì)出現(xiàn)死鎖; 鎖定粒度大, 發(fā)生鎖沖突的概率最高, 并發(fā)度最低。
2、行級(jí)鎖: 開銷大, 加鎖慢; 會(huì)出現(xiàn)死鎖; 鎖定粒度最小, 發(fā)生鎖沖突的概率最低, 并發(fā)度也最高。/
3、頁(yè)面鎖: 開銷和加鎖時(shí)間界于表鎖和行鎖之間; 會(huì)出現(xiàn)死鎖; 鎖定粒度界于表鎖和行鎖之間, 并發(fā)度一般。
2、MySQL 中有哪些不同的表格?
共有 5 種類型的表格: 1、MyISAM2、Heap 3、Merge 4、INNODB 5、MISAM
3、MySQL 中InnoDB 支持的四種事務(wù)隔離級(jí)別名稱,以及逐級(jí)之間的區(qū)別?SQL 標(biāo)準(zhǔn)定義的四個(gè)隔離級(jí)別為:
1、read uncommited : 讀到未提交數(shù)據(jù)
2、read committed: 臟讀, 不可重復(fù)讀
3、repeatable read: 可重讀
4、serializable : 串行事物
4、CHAR 和VARCHAR 的區(qū)別?
1、CHAR 和 VARCHAR 類型在存儲(chǔ)和檢索方面有所不同
2、CHAR 列長(zhǎng)度固定為創(chuàng)建表時(shí)聲明的長(zhǎng)度, 長(zhǎng)度值范圍是 1 到 255 當(dāng) CHAR 值被存儲(chǔ)時(shí), 它們被用空格填充到特定長(zhǎng)度, 檢索 CHAR 值時(shí)需刪除尾隨空格。
5、主鍵和候選鍵有什么區(qū)別?
表格的每一行都由主鍵唯一標(biāo)識(shí),一個(gè)表只有一個(gè)主鍵。
主鍵也是候選鍵。按照慣例, 候選鍵可以被指定為主鍵, 并且可以用于任何外鍵引用。
6、myisamchk 是用來(lái)做什么的?
它用來(lái)壓縮 MyISAM 表,這減少了磁盤或內(nèi)存使用。MyISAM Static和 MyISAM Dynamic 有什么區(qū)別?在 MySAM Static 上的所有字段有固定寬度。動(dòng)態(tài) MyISAM 表將具有像 TEXT,BLOB 等字段,以適應(yīng)不同長(zhǎng)度的數(shù)據(jù)類型
MyISAM Static 在受損情況下更容易恢復(fù)
7、如果一個(gè)表有一列定義為TIMESTAMP,將發(fā)生什么?
每當(dāng)行被更改時(shí),時(shí)間戳字段將獲取當(dāng)前時(shí)間戳。列設(shè)置為 AUTOINCREMENT 時(shí),如果在表中達(dá)到最大值,會(huì)發(fā)生什么情況?它會(huì)停止遞增,任何進(jìn)一步的插入都將產(chǎn)生錯(cuò)誤,因?yàn)槊荑€已被使用。
怎樣才能找出最后一次插入時(shí)分配了哪個(gè)自動(dòng)增量? LAST_INSERT_ID 將返回由 Auto increment 分配的最后一個(gè)值,并且不需要指定表名稱。
以上就是“程序員必備:Mysql數(shù)據(jù)庫(kù)優(yōu)化面試題”,你能回答上來(lái)嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743