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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 職業(yè)指南 九個(gè)常見的sql數(shù)據(jù)庫面試題

九個(gè)常見的sql數(shù)據(jù)庫面試題

更新時(shí)間:2022-12-16 14:48:41 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1175次

1.UNION ALL 與 UNION 的區(qū)別

UNION和UNION ALL關(guān)鍵字都是將兩個(gè)結(jié)果集合并為一個(gè)。

UNION在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,所以在表鏈接后會(huì)對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。而UNION ALL只是簡單的將兩個(gè)結(jié)果合并后就返回。由于UNION需要排序去重,所以 UNION ALL 的效率比 UNION 好很多。

2.TRUNCATE 與 DELETE 區(qū)別

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

3.TIMESTAMP 與 DATETIME 的區(qū)別

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

不同點(diǎn)TIMESTAMP4個(gè)字節(jié)存儲(chǔ),時(shí)間范圍:1970-01-01 08:00:01~2038-01-19 11:14:07。值以UTC格式保存,涉及時(shí)區(qū)轉(zhuǎn)化,存儲(chǔ)時(shí)對(duì)當(dāng)前的時(shí)區(qū)進(jìn)行轉(zhuǎn)換,檢索時(shí)再轉(zhuǎn)換回當(dāng)前的時(shí)區(qū)。

DATETIME8個(gè)字節(jié)存儲(chǔ),時(shí)間范圍:1000-10-01 00:00:00~9999-12-31 23:59:59。實(shí)際格式存儲(chǔ),與時(shí)區(qū)無關(guān)。

4.什么是聯(lián)合索引

兩個(gè)或更多個(gè)列上的索引被稱作聯(lián)合索引,聯(lián)合索引又叫復(fù)合索引。

5.為什么要使用聯(lián)合索引

減少開銷:建一個(gè)聯(lián)合索引(col1,col2,col3),實(shí)際相當(dāng)于建了(col1),(col1,col2),(col1,col2,col3)三個(gè)索引。減少磁盤空間的開銷。

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

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

6.MySQL 聯(lián)合索引最左匹配原則

在 MySQL 建立聯(lián)合索引時(shí)會(huì)遵循最左前綴匹配的原則,即最左優(yōu)先,在檢索數(shù)據(jù)時(shí)從聯(lián)合索引的最左邊開始匹配。

MySQL 會(huì)一直向右匹配直到遇到范圍查詢(>、<、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的順序可以任意調(diào)整。= 和 in 可以亂序,比如a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意順序,mysql的查詢優(yōu)化器會(huì)幫你優(yōu)化成索引可以識(shí)別的形式。

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

聚集索引就是以主鍵創(chuàng)建的索引。

非聚集索引就是以非主鍵創(chuàng)建的索引。

8.什么是覆蓋索引

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

可以結(jié)合第10個(gè)問題更容易理解。

9.什么是前綴索引

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

以上就是“九個(gè)常見的sql數(shù)據(jù)庫面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 黄网站色视频免费观看 | 日比视频在线观看 | 国产在线a免费观看 | 亚洲综合九九 | 97国产精品人人爽人人做 | 国产三级在线观看视频 | 亚洲欧美中文日韩在线v日本 | 国产成人精品免费大全 | 色免费看 | 操操操网 | 成人免费大片a毛片 | 亚洲欧美久久一区二区 | 国产一区二区成人 | 欧美在线一级精品 | 国产日皮 | 国内欧美一区二区三区 | 久综合网| 黄色理论片 | 国产精品伦理久久久久久 | 午夜第一页 | 欧美一区二区久久精品 | 成人羞羞视频免费看 | 黄色小视频在线免费看 | 国内精品1区1区3区4区 | 欧美亚洲91 | 天天射天天干天天 | bt7086福利一区国产 | 欧美在线看欧美高清视频免费 | 国产清纯91天堂在线观看 | 天天操国产 | 男女一进一出免费视频 | 亚洲波多野结衣日韩在线 | 福利所导航导航导航导航 | 精品五夜婷香蕉国产线看观看 | 日本欧美一区二区三区视频麻豆 | 国产精品香蕉成人网在线观看 | 性 色 黄 一级 | 最近的最新的中文字幕在线 | 久久久久夜夜夜精品国产 | 美女视频永久黄网站免费观看韩国 | 播放欧亚一级特黄录像 |