大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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

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

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

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官網。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美精品综合 | 亚洲精品国产成人一区二区 | 欧美影视一区 | 97欧美| 免费香蕉成视频成人网 | 成人影院免费在线观看 | 久久久久亚洲精品影视 | 国产日韩欧美一区 | 美女18xxxx | 99热久久国产精品这 | 精品日本久久久久久久久久 | 日韩精品国产自在久久现线拍 | 免费的一级毛片 | 日韩精品午夜视频一区二区三区 | 九九热精品免费视频 | 在线xxxx| 久久精品国产99精品最新 | 在线观看久草视频 | 91视频国产91久久久 | 久久美剧免费在线观看 | 九九99久久| 兔子bt资源在线 | 日本一级在线播放线观看免 | 久久只有精品 | 羞羞视频网站在线观看 | 国产精品久久久久久久久久久久 | 国产日韩欧美亚洲 | 国产成人精品三级91在线影院 | 欧美成人免费一级人片 | 国产成人综合精品一区 | 久久天天躁狠狠躁夜夜呲 | 九九热免费在线视频 | 亚洲国产欧美精品 | 国产精品久久福利新婚之夜 | 特黄十八岁大片 | 五月婷婷在线观看视频 | 日韩精品中文字幕在线观看 | 97精品国产综合久久久久久欧美 | 日本亚洲一区二区三区 | 天天操夜夜欢 | 欧美不卡在线观看 |