黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 職業指南 九個常見的sql數據庫面試題

九個常見的sql數據庫面試題

更新時間:2022-12-16 14:48:41 來源:動力節點 瀏覽1260次

1.UNION ALL 與 UNION 的區別

UNION和UNION ALL關鍵字都是將兩個結果集合并為一個。

UNION在進行表鏈接后會篩選掉重復的記錄,所以在表鏈接后會對所產生的結果集進行排序運算,刪除重復的記錄再返回結果。而UNION ALL只是簡單的將兩個結果合并后就返回。由于UNION需要排序去重,所以 UNION ALL 的效率比 UNION 好很多。

2.TRUNCATE 與 DELETE 區別

TRUNCATE 是DDL語句,而 DELETE 是DML語句。TRUNCATE 是先把整張表drop調,然后重建該表。而 DELETE 是一行一行的刪除,所以 TRUNCATE 的速度肯定比 DELETE 速度快。TRUNCATE 不可以回滾,DELETE 可以。TRUNCATE 執行結果只是返回0 rows affected,可以解釋為沒有返回結果。TRUNCATE 會重置水平線(自增長列起始位),DELETE 不會。TRUNCATE 只能清理整張表,DELETE 可以按照條件刪除。一般情景下,TRUNCATE性能比DELETE好一點。

3.TIMESTAMP 與 DATETIME 的區別

相同點TIMESTAMP 列的顯示格式與 DATETIME 列相同。顯示列寬固定在19字符,并且格式為YYYY-MM-DD HH:MM:SS。

不同點TIMESTAMP4個字節存儲,時間范圍:1970-01-01 08:00:01~2038-01-19 11:14:07。值以UTC格式保存,涉及時區轉化,存儲時對當前的時區進行轉換,檢索時再轉換回當前的時區。

DATETIME8個字節存儲,時間范圍:1000-10-01 00:00:00~9999-12-31 23:59:59。實際格式存儲,與時區無關。

4.什么是聯合索引

兩個或更多個列上的索引被稱作聯合索引,聯合索引又叫復合索引。

5.為什么要使用聯合索引

減少開銷:建一個聯合索引(col1,col2,col3),實際相當于建了(col1),(col1,col2),(col1,col2,col3)三個索引。減少磁盤空間的開銷。

覆蓋索引:對聯合索引(col1,col2,col3),如果有如下的sql: select col1,col2,col3 from test where col1=1 and col2=2。那么MySQL可以直接通過遍歷索引取得數據,而無需回表,這減少了很多的隨機io操作。覆蓋索引是主要的提升性能的優化手段之一。

效率高:索引列越多,通過索引篩選出的數據越少。有1000W條數據的表,有如下sql select from table where col1=1 and col2=2 and col3=3,假設假設每個條件可以篩選出10%的數據,如果只有單值索引,那么通過該索引能篩選出1000W * 10%=100w條數據,然后再回表從100w條數據中找到符合col2=2 and col3= 3的數據,然后再排序,再分頁;如果是聯合索引,通過索引篩選出1000w * 10% * 10% * 10%=1w,效率得到明顯提升。

6.MySQL 聯合索引最左匹配原則

在 MySQL 建立聯合索引時會遵循最左前綴匹配的原則,即最左優先,在檢索數據時從聯合索引的最左邊開始匹配。

MySQL 會一直向右匹配直到遇到范圍查詢(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)順序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引則都可以用到,a,b,d的順序可以任意調整。= 和 in 可以亂序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意順序,mysql的查詢優化器會幫你優化成索引可以識別的形式。

7.什么是聚集和非聚集索引

聚集索引就是以主鍵創建的索引。

非聚集索引就是以非主鍵創建的索引。

8.什么是覆蓋索引

覆蓋索引(covering index)指一個查詢語句的執行只用從索引頁中就能夠取得(如果不是聚集索引,葉子節點存儲的是主鍵+列值,最終還是要回表,也就是要通過主鍵再查找一次),避免了查到索引后,再做回表操作,減少I/O提高效率。

可以結合第10個問題更容易理解。

9.什么是前綴索引

前綴索引就是對文本的前幾個字符(具體是幾個字符在創建索引時指定)創建索引,這樣創建起來的索引更小。但是MySQL不能在ORDER BY或GROUP BY中使用前綴索引,也不能把它們用作覆蓋索引。

以上就是“九個常見的sql數據庫面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關內容,可以關注動力節點Java官網。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美日韩一本二本 | 日韩在线观看中文字幕 | 一级毛片在线免费看 | 日本高清中文字幕一区二区三区a | 欧美在线 | 欧美 | 一区二区三区精品牛牛 | 亚洲图片在线欧美专区图片 | 国产一级久久久久久毛片 | 日b免费视频 | 丁香六月综合 | 亚洲天堂成人在线观看 | 国产性做久久久久久 | 久久午夜网 | 日韩久久中文字幕 | 欧美亚洲国产精品久久第一页 | 久久综合狠狠综合狠狠 | 亚洲国产成人久久综合一 | 成人国产在线视频在线观看 | 精品一区二区免费视频 | 青青青视频自偷自拍视频1 青青青视频免费一区二区 青青青久热国产精品视频 青青青国产在线 | 欧洲美女a视频一级毛片 | 黄色一级片在线免费观看 | 欧美激情a∨在线视频播放 欧美激情二区 | 成人免费视频播放 | 欧美写真视频一区 | 久久天天躁日日躁狠狠躁 | 亚洲天堂成人在线 | 在线天堂中文在线资源网 | 男女免费观看视频 | 国产超91| 日日摸日日添夜夜爽97 | 羞羞网站视频 | 中文字幕日韩欧美一区二区三区 | 天天插天天干天天射 | 黄色永久免费 | 2345成人高清毛片 | 18成人免费观看视频 | wwwxxx欧美| 日韩中文在线观看 | 一级黄色一级片 | 欧美一级在线视频 |