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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 職業(yè)指南 2023年常用sql語句優(yōu)化的面試題

2023年常用sql語句優(yōu)化的面試題

更新時間:2022-12-28 14:35:30 來源:動力節(jié)點 瀏覽1697次

1、where子句中可以對字段進行null值判斷嗎?

可以,比如 select id from t where num is null 這樣的sql也是可以的。但是最好不要給數(shù)據(jù)庫留NULL,盡可能的使用NOT NULL填充數(shù)據(jù)庫。不要以為NULL不需要空間,比如:char(100) 型,在字段建立時,空間就固定了,不管是否插入值(NULL 也包含在內(nèi)),都是占用100個字符的空間的,如果是varchar 這樣的變長字段,null 不占用空間??梢栽趎um上設(shè)置默認值0,確保表中num列沒有null值,然后這樣查詢:select id from t where num= 0。

2、select * from admin left join log on admin.admin_id = log.admin_id where log.admin_id>10 如何優(yōu)化?

優(yōu) 化 為 : select * from (select * from admin where admin_id>10) T1 left join log on T1.admin_id =log.admin_id。使用 JOIN 時候,應(yīng)該用小的結(jié)果驅(qū)動大的結(jié)果(left join 左邊表結(jié)果盡量小如果有條件應(yīng)該放到左邊先處理, right join同理反向),同時盡量把牽涉到多表聯(lián)合的查詢拆分多個 query(多個連表查詢效率低,容易到之后鎖表和阻塞)。

3、limit的基數(shù)比較大時使用between場景有那些?

例如

select * from admin order by admin_id limit 100000,10

優(yōu)化為

select * from admin where admin_time> '2014-01-01′

4、慢 SQL 語句的幾種常見誘因?

在這個時候,就可以說,面試官,您好,我覺得SQL慢出現(xiàn)的原因可以分為以下幾種,切記,不要回答自己模糊不清的,沒法自圓其說的即使知道你也別回答,不然就是給自己挖坑。。。

  • 無索引、索引失效導(dǎo)致慢查詢

如果表很大,而對where或者order by 后面字段沒有建立索引,那這種情況查起來肯定很費力。但是有時候建立了索引,但在一些特定的場景下,索引還有可能會失效,所以索引失效也是導(dǎo)致慢查詢的主要原因之一。失效場景很多,比如模糊查詢白分號在前、查詢的字段使用了函數(shù)或者做了計算操作都有可能導(dǎo)致索引失效。

  • 鎖等待

InnoDB 存儲引擎支持行鎖和表鎖,我們要注意行鎖升級為表鎖的可能。在批量更新操作時,行鎖就很可能會升級為表鎖。MySQL 認為如果對一張表使用大量行鎖,會導(dǎo)致事務(wù)執(zhí)行效率下降,從而可能造成其它事務(wù)長時間鎖等待和更多的鎖沖突問題發(fā)生,致使性能嚴(yán)重下降,所以 MySQL 會將行鎖升級為表鎖。還有,行鎖是基于索引加的鎖,如果我們在更新操作時,條件索引失效,那么行鎖也會升級為表鎖。除了鎖升級之外,行鎖相對表鎖來說,雖然粒度更細,并發(fā)能力提升了,但也帶來了新的問題,那就是死鎖。

  • 不恰當(dāng)?shù)?SQL 語句

使用不恰當(dāng)?shù)?SQL 語句也是慢 SQL 最常見的誘因之一。例如,習(xí)慣使用 , SQL 語句,在大數(shù)據(jù)表中使用 分頁查詢,以及對非索引字段進行排序等等。對于一些慢的SQL,我該怎么分析?

上面我說了一些關(guān)于SQL執(zhí)行慢的原因,下面就該看看怎么分析這些SQL了

  • 找出慢SQL

開啟慢查詢,慢查詢是分析SQL執(zhí)行慢的常見手段,主要有這幾個參數(shù),slow_query_log:慢查詢開啟狀態(tài),slow_query_log_file:慢查詢?nèi)罩敬娣诺奈恢?這個目錄需要MySQL的運行帳號的可寫權(quán)限,一般設(shè)置為MySQL的數(shù)據(jù)存放目錄),long_query_time:查詢超過多少秒才記錄。

  • 通過 EXPLAIN 分析 SQL 執(zhí)行計劃
  • 通過 Show Profile 分析 SQL 執(zhí)行性能

5.有哪些影響數(shù)據(jù)庫性能的瓶頸?

答: 在Web應(yīng)用程序中,數(shù)據(jù)庫層可能被證明是實現(xiàn)最后一英里可擴展性的關(guān)鍵瓶頸。如果數(shù)據(jù)庫存在性能泄漏,則可能成為瓶頸,并可能導(dǎo)致問題。一些常見的性能問題如下。

1. CPU使用率異常是最明顯的性能瓶頸。但是,您可以通過擴容CPU或替換為高級CPU來修復(fù)它。它可能看起來像是一個簡單的問題,但異常的CPU使用率可能導(dǎo)致其他問題。

2.內(nèi)存不足是下一個最常見的瓶頸。如果服務(wù)器無法管理峰值負載,那么它將對性能造成很大的問號。對于任何應(yīng)用程序來說,執(zhí)行內(nèi)存都是至關(guān)重要的,因為它比持久性內(nèi)存要快。同樣,當(dāng)RAM下降到特定閾值時,操作系統(tǒng)將轉(zhuǎn)向使用交換內(nèi)存。但這會使應(yīng)用程序運行非常緩慢。

您可以通過擴容RAM來解決它,但是如果有內(nèi)存泄漏,它將無法解決。在這種情況下,您需要分析應(yīng)用程序,以識別其代碼中的潛在泄漏。

3.對外部存儲設(shè)備(如SATA磁盤)的過度依賴也可能成為瓶頸。在將大量數(shù)據(jù)寫入磁盤時,其影響顯而易見。如果輸出操作非常慢,則很明顯表明問題已成為瓶頸。

在這種情況下,您需要進行擴容,用更快的驅(qū)動器替換現(xiàn)有驅(qū)動器。嘗試升級到SSD硬盤驅(qū)動器或類似產(chǎn)品。

以上就是“2023年常用sql語句優(yōu)化的面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動力節(jié)點Java官網(wǎng)。

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

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 天天尻逼 | 国内精品久久久久影院日本 | 亚洲欧美精品网站在线观看 | 国产综合欧美日韩视频一区 | 日本亚洲国产精品久久 | 天天做人人爱夜夜爽2020 | 精品欧美一区二区精品久久 | 免费一级毛片 | 免费看国产一级特黄aa大片 | 日韩在线观看中文字幕 | 青青影院一区二区免费视频 | 国产成人免费视频精品一区二区 | 亚洲成在人色婷婷 | 中文字幕亚洲专区 | 国产综合在线播放 | 久久精品人人做人人爱爱 | 精品一区二区视频 | 免费看又爽又黄禁片视频1000 | 亚洲一区二区视频 | 四虎精品永久在线网址 | 在线播放a 1 | 亚洲国产精品久久久天堂麻豆 | 884hutv四虎永久7777| 欧美大片毛片大片 | 欧美成人精品福利在线视频 | 四虎成年永久免费网站 | 成人a视频 | 日韩在线观看一区二区三区 | 欧洲亚洲视频 | 精品乱久久 | 日韩精品一区二区三区中文字幕 | 欧美日韩看片 | 亚洲美女在线视频 | 久久精品视频免费看 | 日本xxxx色视频在线观看免 | 99国产精品欧美久久久久久影院 | 免费一级真人毛片 | 91在线精品视频 | 亚洲国产欧美在线 | 日本精品网站 | 大陆一级毛片免费视频观看 |