久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL在大數(shù)據(jù)、高并發(fā)場景下的SQL語句優(yōu)化和實踐是怎樣的

138次閱讀
沒有評論

共計 1547 個字符,預計需要花費 4 分鐘才能閱讀完成。

MySQL 在大數(shù)據(jù)、高并發(fā)場景下的 SQL 語句優(yōu)化和實踐是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

MySQL 在大數(shù)據(jù)、高并發(fā)場景下的 SQL 語句優(yōu)化和 最佳實踐

主要針對中小型應用或網(wǎng)站,重點探討日常程序開發(fā)中 SQL 語句的優(yōu)化問題,所謂“大數(shù)據(jù)”、“高并發(fā)”僅針對中小型應用而言,專業(yè)的數(shù)據(jù)庫運維大神請無視。以下實踐為個人在實際開發(fā)工作中,針對相對“大數(shù)據(jù)”和相對“高并發(fā)”場景的一些應對策略,部分措施并沒有經(jīng)過嚴格的對比測試和原理分析。

減少查詢的影響結果集,避免出現(xiàn)全表掃描。

影響結果集是 SQL 優(yōu)化的核心。影響結果集不是查詢返回的記錄數(shù),而是查詢所掃描的結果數(shù)。通過 Explain 或 Desc 分析 SQL,rows 列的值即為影響結果集 (還可以通過慢查詢日志的 Rows_examined 后面的數(shù)字得到)。

以下是我常用的一些 SQL 優(yōu)化策略:

去掉不必要的查詢和搜索。其實在項目的實際應用中,很多查詢條件是可有可無的,能從源頭上避免的多余功能盡量砍掉,這是最簡單粗暴的解決方案。

合理使用索引和復合索引。建索引是 SQL 優(yōu)化中最有效的手段。查找、刪除、更新以及排序時常用的字段可以適當建立索引。不過要注意,單條查詢不能同時使用多個索引,只能使用一個索引。查詢條件較多時,可以使用多個字段合并的復合索引。切記,使用復合索引時,查詢條件的字段順序需要與復合索引的字段順序保持一致。

謹慎使用 notin 等可能無法使用索引的條件。索引也不是什么時候都可以發(fā)揮作用的,當出現(xiàn) notin,!=,like %xx%,isnull 等條件時,索引是無效的。使用這些條件的時候,請放到能有效使用索引的條件的右邊。設計表結構時,個人建議盡可能用 int 類型代替 varchar 類型,int 類型部分時候可以通過大于或小于代替 != 等條件,同時也方便滿足一些需要按類型排序的需求,至于可讀性的問題,完善好數(shù)據(jù)庫設計文檔才是明智的選擇。同時建議把所有可能的字段設置為 notnull,并設置默認值,避免在 where 字句中出現(xiàn) isnull 的判斷。

不要在 where 子句中的“=”左邊進行函數(shù)、算術運算或其他表達式運算,否則系統(tǒng)將無法正確使用索引。盡可能少用 MySQL 的函數(shù),類似 Now() 完全可以通過程序實現(xiàn)并賦值,部分函數(shù)也可以通過適當?shù)慕⑷哂嘧侄蝸黹g接替代。

在 where 條件中使用 or,可能導致索引無效。可用 unionall 或者 union (會過濾重復數(shù)據(jù),效率比前者低) 代替,或程序上直接分開兩次獲取數(shù)據(jù)再合并,確保索引的有效利用。

不使用 select*,倒不是能提高查詢效率,主要是減少輸出的數(shù)據(jù)量,提高傳輸速度。

避免類型轉換,這里所說的“類型轉換”是指 where 子句中出現(xiàn)字段的類型和傳入的參數(shù)類型不一致的時候發(fā)生的類型轉換。

分頁查詢的優(yōu)化。頁數(shù)比較多的情況下,如 limit10000,10 影響的結果集是 10010 行,查詢速度會比較慢。推薦的解決方案是:先只查詢主鍵 selectidfromtablewhere..orderby..limit10000,10(搜索條件和排序請建立索引),再通過主鍵去獲取數(shù)據(jù)。

統(tǒng)計相關的查詢。影響結果集往往巨大,且部分 SQL 語句本身已經(jīng)難以優(yōu)化。因此,應避免在業(yè)務高峰期執(zhí)行統(tǒng)計相關的查詢,或者僅在從庫中執(zhí)行統(tǒng)計查詢。部分統(tǒng)計數(shù)據(jù),可以通過冗余的數(shù)據(jù)結構保存,同時建議把數(shù)據(jù)先保存在內存、緩存中 (如 redis),再按一定策略寫入數(shù)據(jù)庫。

不使用任何連表查詢,通過分庫和分表實現(xiàn)負載均衡。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業(yè)資訊頻道,感謝您對丸趣 TV 的支持。

正文完
 
丸趣
版權聲明:本站原創(chuàng)文章,由 丸趣 2023-07-18發(fā)表,共計1547字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網(wǎng)絡搜集發(fā)布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 洛隆县| 武清区| 盐池县| 桑植县| 宕昌县| 玉田县| 临泽县| 司法| 宜阳县| 自治县| 什邡市| 上饶县| 台州市| 堆龙德庆县| 华安县| 房产| 红河县| 奉化市| 尖扎县| 克什克腾旗| 进贤县| 大姚县| 聂拉木县| 青浦区| 博白县| 孟州市| 石渠县| 收藏| 河北省| 柏乡县| 白沙| 麻阳| 镇安县| 镇宁| 清镇市| 太湖县| 清水河县| 左权县| 稻城县| 上犹县| 花莲市|