sql優化 資料庫優化

2021-09-11 16:58:15 字數 1623 閱讀 5223

資料庫優化:

資料庫優化吧我覺應該從硬碟、記憶體和網路頻寬考慮,提高硬碟的讀寫速度,增大頻寬提高吞吐量,增大伺服器記憶體,可以採用讀寫分離,降低單台資料庫的訪問壓力,查詢的時候控制資料量的大小,返回更少資料,減少互動次數,減少cpu及記憶體的開銷,

sql優化:如果乙個表中資料量過大我們可以採用橫切割,如果乙個表中字段過多,我們可以採用縱切割,適度冗餘減少表關聯查詢,避免過多的聯查,設計合理的表關係,適當建立索引,但是不能每個欄位都建立索引,因為索引也要占用一定的物理儲存空間,而且索引也需要動態維護,增加索引雖然可以提高查詢速度,但是如果索引過多就會降低增刪改的速度,寫sql的時候也要注意,盡可能不要寫一些讓索引失效的sql,例如:索引的字段不能為空,不能進項模糊搜尋,不能進項邏輯運算,不能使用函式,給索引查詢的值應是已知資料,不能是未知字段值。也可以使用force(fou si)強制走索引,咱們常用的索引包括,單個索引、唯一索引、復合索引,單個索引就是建立的索引中只包含乙個字段,復合索引是建立的乙個索引中包含多個字段,建立索引:create index index_name on table_name(column_name)

永遠不要信任使用者的輸入。對使用者的輸入進行校驗,可以通過正規表示式,或限制長度;對單引號和雙"-"進行轉換等。

(1).使用preparedstatement(pu pei er de si de te men ci)

sql注入只對sql語句的準備(編譯)過程有破壞作用而preparedstatement(pu pei er de si de te men ci)已經準備好了,執行階段只是把輸入串作為資料處理, 而不再對sql語句進行解析,準備,因此也就避免了sql注入問題.

(2).使用正規表示式過濾傳入的引數

(3).字串過濾

(4).jsp中呼叫該函式檢查是否包函非法字元

(5).jsp頁面判斷**」『」,」\\」,」/」

2.永遠不要使用動態拼裝sql,可以使用引數化的sql或者直接使用儲存過程進行資料查詢訪問。

3.永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。

4.不要把機密資訊直接存放,加密或者hash(ha)掉密碼和敏感的資訊。

5.應用的異常資訊應該給出盡可能少的提示,最好使用自定義的錯誤資訊對原始錯誤資訊進行包裝

6.sql注入的檢測方法一般採取輔助軟體或**平台來檢測,軟體一般採用sql注入檢測工具jsky,**平台就有億思**安全平台檢測工具。mdcsoft scan等。採用mdcsoft-ips可以有效的防禦sql注入,xss攻擊等。

sql優化,資料庫優化

1.sql的執行順序 from 表名 where 條件 執行順序是從後往前,where條件後面的語句盡可能縮短where 資料執行的範圍。先group by 後order by select 查詢 2.避免過多的聯查,設計合理的表關係 3.遵守常見sql規範,盡可能減少 4.如果表字段過多,經常展示...

資料庫優化 SQL優化

前面一篇文章從例項的角度進行資料庫優化,通過配置一些引數讓資料庫效能達到最優。但是一些 不好 的sql也會導致資料庫查詢變慢,影響業務流程。本文從sql角度進行資料庫優化,提公升sql執行效率。判斷sql是否有問題時可以通過兩個表象進行判斷 可以使用sar命令,top命令檢視當前系統狀態。也可以通過...

資料庫優化 sql語句優化

1 group by語句優化 因為mysql對所有group by的字段進行排序,所以如果包含group by但是想要避免排序結果的消耗,可以指定order by null來進行group by的排序。select id,sun moneys from sales group by id expla...