1专甩、MySQL中myisam與innodb的區(qū)別运沦,至少5點(diǎn):
- InnoDB支持事物,而MyISAM不支持事物
- InnoDB支持行級(jí)鎖配深,而MyISAM支持表級(jí)鎖
- InnoDB支持MVCC, 而MyISAM不支持
- InnoDB支持外鍵,而MyISAM不支持
- InnoDB在mysql5.6前不支持FULLTEXT類型的全文索引嫁盲,但是InnoDB可以使用sphinx插件支持全文索引篓叶,5.6時(shí)不支持中文全文索引,MyISAM支持FULLTEXT類型的全文索引
2羞秤、innodb引擎的4大特性
- 插入緩沖(insert buffer)
- 二次寫(double write)
- 自適應(yīng)哈希索引(ahi)
- 預(yù)讀(read ahead)
3缸托、myisam與innodb二者select count(*)哪個(gè)更快,為什么
- myisam更快瘾蛋,因?yàn)閙yisam內(nèi)部維護(hù)了一個(gè)計(jì)數(shù)器俐镐,可以直接調(diào)取。
4哺哼、varchar與char的區(qū)別
- char是一種固定長(zhǎng)度的類型佩抹,varchar則是一種可變長(zhǎng)度的類型
5、varchar(50)中50的涵義
- 最多存放50個(gè)字符取董,varchar(50)和(200)存儲(chǔ)hello所占空間一樣棍苹,但后者在排序時(shí)會(huì)消耗更多內(nèi)存,因?yàn)閛rder by col采用fixed_length計(jì)算col長(zhǎng)度(memory引擎也一樣)
6茵汰、int(20)中20的涵義
- 是指顯示字符的長(zhǎng)度枢里。但要加參數(shù)的,最大為255蹂午,比如它是記錄行數(shù)的id,插入10筆資料栏豺,它就顯示00000000001 ~~~00000000010,當(dāng)字符的位數(shù)超過11,它也只顯示11位豆胸,如果你沒有加那個(gè)讓它未滿11位就前面加0的參數(shù)奥洼,它不會(huì)在前面加0
20表示最大顯示寬度為20,但仍占4字節(jié)存儲(chǔ)配乱,存儲(chǔ)范圍不變溉卓;
7皮迟、事物的4種隔離級(jí)別
- 讀未提交(RU)
- 讀已提交(RC)
- 可重復(fù)讀(RR)
-
串行
8、事務(wù)是如何通過日志來實(shí)現(xiàn)的桑寨,說得越深入越好伏尼。
- 事務(wù)日志是通過redo和innodb的存儲(chǔ)引擎日志緩沖(Innodb log buffer)來實(shí)現(xiàn)的,當(dāng)開始一個(gè)事務(wù)的時(shí)候尉尾,會(huì)記錄該事務(wù)的lsn(log sequence number)號(hào); 當(dāng)事務(wù)執(zhí)行時(shí)爆阶,會(huì)往InnoDB存儲(chǔ)引擎的日志的日志緩存里面插入事務(wù)日志;當(dāng)事務(wù)提交時(shí)沙咏,必須將存儲(chǔ)引擎的日志緩沖寫入磁盤(通過innodb_flush_log_at_trx_commit來控制)辨图,也就是寫數(shù)據(jù)前,需要先寫日志肢藐。這種方式稱為“預(yù)寫日志方式”
9故河、數(shù)據(jù)庫是否支持emoji表情,如果不支持吆豹,如何操作鱼的?
- 如果是utf8字符集的話,需要升級(jí)至utf8_mb4方可支持
10痘煤、索引是什么凑阶?有什么作用以及優(yōu)缺點(diǎn)?
- 索引是對(duì)數(shù)據(jù)庫表中一或多個(gè)列的值進(jìn)行排序的結(jié)構(gòu)衷快,是幫助MySQL高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)
- 索引就是加快檢索表中數(shù)據(jù)的方法宙橱。數(shù)據(jù)庫的索引類似于書籍的索引。在書籍中蘸拔,索引允許用戶不必翻閱完整個(gè)書就能迅速地找到所需要的信息师郑。在數(shù)據(jù)庫中,索引也允許數(shù)據(jù)庫程序迅速地找到表中的數(shù)據(jù)都伪,而不必掃描整個(gè)數(shù)據(jù)庫呕乎。
- 索引加快數(shù)據(jù)庫的檢索速度
- 唯一索引可以確保每一行數(shù)據(jù)的唯一性
- 通過使用索引,可以在查詢的過程中使用優(yōu)化隱藏器陨晶,提高系統(tǒng)的性能
- 索引降低了插入猬仁、刪除、修改等維護(hù)任務(wù)的速度
- 索引需要占物理和數(shù)據(jù)空間
11先誉、MySQL數(shù)據(jù)庫幾個(gè)基本的索引類型
- 普通索引湿刽、唯一索引、主鍵索引褐耳、全文索引
12诈闺、什么是事務(wù)?
- 事務(wù)(Transaction)是并發(fā)控制的基本單位铃芦。所謂的事務(wù)雅镊,它是一個(gè)操作序列襟雷,這些操作要么都執(zhí)行,要么都不執(zhí)行仁烹,它是一個(gè)不可分割的工作單位耸弄。事務(wù)是數(shù)據(jù)庫維護(hù)數(shù)據(jù)一致性的單位,在每個(gè)事務(wù)結(jié)束時(shí)卓缰,都能保持?jǐn)?shù)據(jù)一致性计呈。
13、一張表征唬,里面有ID自增主鍵捌显,當(dāng)insert了17條記錄之后,刪除了第15,16,17條記錄总寒,再把Mysql重啟扶歪,再insert一條記錄,這條記錄的ID是18還是15 摄闸?
14击罪、如何區(qū)分FLOAT和DOUBLE?
- 浮點(diǎn)數(shù)以8位精度存儲(chǔ)在FLOAT中贪薪,并且有四個(gè)字節(jié)。
- 浮點(diǎn)數(shù)存儲(chǔ)在DOUBLE中眠副,精度為18位画切,有八個(gè)字節(jié)。