新聞中心
如何進行SQL性能優(yōu)化?
一、使用索引 1.單表索引建議控制在5個以內(nèi) 2.單索引字段數(shù)不允許超過5個因為字段超過5個時,實際已經(jīng)起不到有效過濾數(shù)據(jù)的作用了。 3.禁止在更新十分頻繁、區(qū)分度不高的屬性上建立索引,因為更新會變更B+樹,更新頻繁的字段建立索引會大大降低數(shù)據(jù)庫性能。 4.性別”這種區(qū)分度不大的屬性,建立索引是沒有什么意義的,不能有效過濾數(shù)據(jù),性 能與全表掃描類似。 5.建立組合索引,必須把區(qū)分度高的字段放在前面,因為能夠更加有效的過濾數(shù)據(jù)。

創(chuàng)新互聯(lián)是一家專業(yè)提供濟水街道企業(yè)網(wǎng)站建設,專注與網(wǎng)站設計制作、成都做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務。10年已為濟水街道眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設公司優(yōu)惠進行中。
二、SQL使用規(guī)范優(yōu)化 1.禁止使用SELECT?*,只獲取必要的字段,需要顯示說明列屬性。
1.1讀取不需要的列會增加CPU、IO、NET消耗。 1.2不能有效的利用覆蓋索引。 2.禁止使用INSERT?INTO?t_xxx?VALUES(xxx),必須顯示指定插入的列屬性。 2.1容易在增加或者刪除字段后出現(xiàn)程序BUG。 3.禁止使用屬性隱式轉(zhuǎn)換。 3.1 SELECT?uid?FROM?t_user?WHERE?phone=13812345678?會導致全表掃描,而不 能命中phone索引。 4.禁止在WHERE條件的屬性上使用函數(shù)或者表達式。 4.1SELECT?uid?FROM?t_user?WHERE?from_unixtime(day)>='2019-07-15'?會導致全 表掃描。 4.2正確的寫法是:SELECT?uid?FROM?t_user?WHERE?day>=?unix_timestamp('2019-07-15 00:00:00')。 5.禁止負向查詢,以及%開頭的模糊查詢。 5.1 負向查詢條件:NOT、!=、<>、!<、!>、NOT?IN、NOT?LIKE等,會導致全表掃描。 5.2 %開頭的模糊查詢,會導致全表掃描。 6.禁止大表使用JOIN查詢,禁止大表使用子查詢。 6.1會產(chǎn)生臨時表,消耗較多內(nèi)存與CPU,極大影響數(shù)據(jù)庫性能。 7.禁止使用OR條件,必須改為IN查詢。 7.1舊版本Mysql的OR查詢是不能命中索引的,即使能命中索引,為何要讓數(shù)據(jù)庫耗費 更多的CPU幫助實施查詢優(yōu)化呢? 8.應用程序必須捕獲SQL異常,并有相應處理 總結(jié):大數(shù)據(jù)量高并發(fā)的互聯(lián)網(wǎng)業(yè)務,極大影響數(shù)據(jù)庫性能的都不能用哦。
sql處理思路?
SQL處理的思路主要包括分析需求,設計數(shù)據(jù)庫表結(jié)構(gòu),編寫SQL語句實現(xiàn)數(shù)據(jù)的增刪改查操作,優(yōu)化查詢性能,處理并發(fā)和事務,確保數(shù)據(jù)庫的安全性和穩(wěn)定性。
在處理過程中需要注意事務的一致性和隔離級別,避免死鎖和數(shù)據(jù)丟失等問題。
同時,也需要考慮索引的使用,以及連接、子查詢、視圖等操作的性能影響,以提高數(shù)據(jù)庫的效率和性能。
在實際應用中,也需要注意SQL注入和數(shù)據(jù)安全等問題,保障數(shù)據(jù)庫的完整性和安全性。
數(shù)據(jù)庫性能優(yōu)化主要包括哪些方面?
數(shù)據(jù)庫性能優(yōu)化主要一下幾個方面:
1、sql語句的執(zhí)行計劃是否正常
2、減少應用和數(shù)據(jù)庫的交互次數(shù)、同一個sql語句的執(zhí)行次數(shù)
3、數(shù)據(jù)庫實體的碎片的整理(特別是對某些表經(jīng)常進行insert和delete動作,尤其注意,索引字段為系列字段、自增長字段、時間字段,對于業(yè)務比較頻繁的系統(tǒng),最好一個月重建一次)
4、減少表之間的關聯(lián),特別對于批量數(shù)據(jù)處理,盡量單表查詢數(shù)據(jù),統(tǒng)一在內(nèi)存中進行邏輯處理,減少數(shù)據(jù)庫壓力(java處理批量數(shù)據(jù)不可取,盡量用c或者c++進行處理,效率大大提升)
5、對訪問頻繁的數(shù)據(jù),充分利用數(shù)據(jù)庫cache和應用的緩存6、數(shù)據(jù)量比較大的,在設計過程中,為了減少其他表的關聯(lián),增加一些冗余字段,提高查詢性能
到此,以上就是小編對于sql優(yōu)化常用的幾種方法的問題就介紹到這了,希望這3點解答對大家有用。
分享名稱:如何進行SQL性能優(yōu)化?(sql優(yōu)化常用的方法有哪些)
當前網(wǎng)址:http://fisionsoft.com.cn/article/dhpjjse.html


咨詢
建站咨詢
