數據庫面試題-步步爲營

數據庫基礎知識
1、爲什麼要使用數據庫
2、什麼是SQL?
3、什麼是MySQL?
4、數據庫三大範式是什麼
5、mysql有關權限的表都有哪幾個
6、MySQL的binlog有有幾種錄入格式?分別有什麼區別?

數據類型
1、mysql有哪些數據類型

引擎
1、MySQL存儲引擎MyISAM與InnoDB區別
2、MyISAM索引與InnoDB索引的區別?
3、InnoDB引擎的4大特性
4、存儲引擎選擇

索引
1、什麼是索引?
2、索引有哪些優缺點?
3、索引使用場景(重點)
4、索引有哪幾種類型?
5、索引的數據結構(b樹,hash)
6、索引的基本原理
7、索引算法有哪些?
8、索引設計的原則?
9、創建索引的原則(重中之重)
10、創建索引的三種方式,刪除索引
11、創建索引時需要注意什麼?
12、使用索引查詢一定能提高查詢的性能嗎?爲什麼
13、百萬級別或以上的數據如何刪除
14、前綴索引
15、什麼是最左前綴原則?什麼是最左匹配原則
16、B樹和B+樹的區別
17、使用B樹的好處
18、使用B+樹的好處
19、Hash索引和B+樹所有有什麼區別或者說優劣呢?
20、數據庫爲什麼使用B+樹而不是B樹
21、B+樹在滿足聚簇索引和覆蓋索引的時候不需要回表查詢數據,
22、什麼是聚簇索引?何時使用聚簇索引與非聚簇索引
23、非聚簇索引一定會回表查詢嗎?
24、聯合索引是什麼?爲什麼需要注意聯合索引中的順序?

事務
1、什麼是數據庫事務?
2、事物的四大特性(ACID)介紹一下?
3、什麼是髒讀?幻讀?不可重複讀?
4、什麼是事務的隔離級別?MySQL的默認隔離級別是什麼?


1、對MySQL的鎖瞭解嗎
2、隔離級別與鎖的關係
3、按照鎖的粒度分數據庫鎖有哪些?鎖機制與InnoDB鎖算法
4、從鎖的類別上分MySQL都有哪些鎖呢?像上面那樣子進行鎖定豈不是有點阻礙併發效率了
5、MySQL中InnoDB引擎的行鎖是怎麼實現的?
6、InnoDB存儲引擎的鎖的算法有三種
7、什麼是死鎖?怎麼解決?
8、數據庫的樂觀鎖和悲觀鎖是什麼?怎麼實現的?

視圖
1、爲什麼要使用視圖?什麼是視圖?
2、視圖有哪些特點?
3、視圖的使用場景有哪些?
4、視圖的優點
5、視圖的缺點
6、什麼是遊標?

存儲過程與函數
1、什麼是存儲過程?有哪些優缺點?

觸發器
1、什麼是觸發器?觸發器的使用場景有哪些?
2、MySQL中都有哪些觸發器?

常用SQL語句
1、SQL語句主要分爲哪幾類
2、超鍵、候選鍵、主鍵、外鍵分別是什麼?
3、SQL 約束有哪幾種?
4、六種關聯查詢
5、什麼是子查詢
6、子查詢的三種情況
7、mysql中 in 和 exists 區別
8、varchar與char的區別
9、varchar(50)中50的涵義
10、int(20)中20的涵義
11、mysql爲什麼這麼設計
12、mysql中int(10)和char(10)以及varchar(10)的區別
13、FLOAT和DOUBLE的區別是什麼?
14、drop、delete與truncate的區別
15、UNION與UNION ALL的區別?

SQL優化
1、如何定位及優化SQL語句的性能問題?創建的索引有沒有被使用到?或者說怎麼纔可以知道這條語句運行很慢的原因?
2、SQL的生命週期?
3、大表數據查詢,怎麼優化
4、超大分頁怎麼處理?
5、mysql 分頁
6、慢查詢日誌
7、關心過業務系統裏面的sql耗時嗎?統計過慢查詢嗎?對慢查詢都怎麼優化過?
8、爲什麼要儘量設定一個主鍵?
9、主鍵使用自增ID還是UUID?
10、字段爲什麼要求定義爲not null?
11、如果要存儲用戶的密碼散列,應該使用什麼字段進行存儲?
12、優化查詢過程中的數據訪問
13、優化長難的查詢語句
14、優化特定類型的查詢語句
15、優化關聯查詢
16、優化子查詢
17、優化LIMIT分頁
18、優化UNION查詢
19、優化WHERE子句

數據庫優化
1、爲什麼要優化
2、數據庫結構優化
3、MySQL數據庫cpu飆升到500%的話他怎麼處理?
4、大表怎麼優化?某個表有近千萬數據,CRUD比較慢,如何優化?分庫分表了是怎麼做的?分表分庫了有什麼問題?有用到中間件麼?他們的原理知道麼?
垂直分表
適用場景
缺點
水平分表:
適用場景
水平切分的缺點
5、MySQL的複製原理以及流程
6、讀寫分離有哪些解決方案?
7、備份計劃,mysqldump以及xtranbackup的實現原理
8、數據表損壞的修復方式有哪些?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章