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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java數據庫實戰視頻,數據庫查詢效率

Java數據庫實戰視頻,數據庫查詢效率

更新時間:2020-01-16 11:01:31 來源:動力節點 瀏覽2425次


  隨著產品的推廣 、業務場景的復雜和使用用戶越來越多 數據會呈現快速增長。當數據達到千萬級的時候 就會發現 查詢速度越來越慢 用戶體驗也就越來越差,那怎樣提升千萬級數據查詢效率呢?


Java數據庫實戰視頻,數據庫查詢效率


  優化數據庫設計:


  數據字段類型使用varchar/nvarchar 替換 char/nchar,變長字段存儲空間小,節省存儲空間。在查詢的時候小的空間字段搜索效率更高。


  查詢的時候避免全表掃描,可以在where和order by 的字段上建立索引。


  where 查詢子句中不對null值做判斷,會導致檢索引擎放棄使用索引而使用全表掃描,如:select id,name from user where age is null 可以設置age 的默認值為0,保證沒有null值,修改后的sql查詢語句為:select id,name from user where age = 0。


  謹慎使用索引,索引不是越多越好。一般一張表的索引數不要超過6個,如果太多要討論業務是否合理或者是否索引建在了不常用的字段上。索引可以提高select 查詢的效率,但是也響應降低了 insert和update 的效率,因為在執行insert和update時也可能會重建索引。


  盡量不要更新索引數據,因為索引數據的順序是表記錄的物理順序,一旦發生改變將會導致整個表記的順序發生改變,將會消耗大量資源。如果業務需要頻繁更新索引數據列 就要考慮索引是否創建合理,比如 用戶ID、身份證號碼或者手機號碼不經常改變的列可以考慮創建索引。


  字符型字段如果符合業務需求可以修改為數字類型字段,因為字符型字段會降低查詢和連接的性能,并且增加存儲的開銷。執行搜索的適合查詢和連接會逐個比較字符串的每一個字符,如果是數據類型比對一次就可以了。


  SQL查詢優化


  where 查詢語句中避免使用**!= 或<> **操作符,搜索引擎會執行全表掃描而不執行創建的索引。


  where 查詢語句中 避免使用 or 來連接條件查詢數據,也會導致搜索引擎執行全表掃描而不執行創建的索引,例如:select id,name from user where age = 18 or age = 25 可以修改為 select id,name from user where age = 18 union all select id,name from user where age = 25。


  ** in 和 not in也避免使用,也將導致全表掃描,例如:select id,name from user where age in (18,19,20)** 如果是連續的則可以考慮使用between and,例如:select id,name from user where age between 18 and 20。


  like 語句導致全表掃描,例如:select id,name from user where name like ‘%微信%’。


  wehre 查詢語句中避免使用參數,也會全表掃描,SQL在運行時才會進行局部變量的解析,優化程序不能將訪問計劃的選擇推遲到運行時;它必須在編譯時進行選擇。如果編譯時建立訪問計劃,變量的值還是未知的,因而無法作為索引選擇的輸入項。如下面語句將進行全表掃描:select id,name from user where age = @age 當然也可以改為強制使用索引:select id,name from user with(index(索引名)) where age =@ age


  where查詢語句避免使用表達式,也會導致查詢的時候放棄使用索引導致全表掃描。例select id,name from user where age/2 = 10 ** 可以更改為 ** select id,name from user where age = 102*。


  where查詢語句避免使用函數操作,也會導致查詢的時候放棄使用索引導致全表掃描。例如:select id,name from user where substring(name,1,3)=’abc’ 可以改為select id,name from user where name like ‘abc%’。


  不要使用select * from user 查詢,要用具體的字段名。不要返回任何用不到的字段。


  不要使用游標,大家都知道游標的效率非常差。


  避免出現大實務業務,會降低系統的并發能力。


  Java后臺優化


  使用JDBC連接數據庫。


  合理使用數據緩存。


  控制好內存,不要全部數據放到內出做處理,可以邊讀邊處理。


  少創造對象。


  數據庫性能優化


  使用存儲過程 如果在具體業務實現過程中,可以使用存儲過程操作數據庫可以盡量使用,由于存儲過程是存放在數據庫服務器上的一次性被設計、編碼、測試,被再次調用,需要執行該存儲過程可以很簡單的使用。可以提高響應速度,減少網絡使用流量等等。


  硬件調整 影響數據庫性能的也可能是磁盤和網絡吞吐量,可以通過擴大虛擬內存,把數據庫服務器和主服務器分開部署。數據服務器吞吐量調為最大。


  調整數據庫 如果在實際業務實現中對表查詢頻率過高,可以對表創建索引;按照where查詢條件建立索引,盡量為整型鍵建立為有且只有一個簇集索引,數據在物理上按順序在數據頁上,縮短查找范圍,為在查詢經常使用的全部列建立非簇集索引,能最大地覆蓋查詢;但是索引不可太多,執行UPDATE DELETE INSERT語句需要用于維護這些索引的開銷量急劇增加;避免在索引中有太多的索引鍵;避免使用大型數據類型的列為索引;保證每個索引鍵值有少數行。


  數據庫相關視頻教程


  oracle數據庫教程:http://m.dabaquan.cn/v22/


  數據庫plsql教程:http://m.dabaquan.cn/v23/


  jdbc數據庫教程:http://m.dabaquan.cn/v24/


  數據庫mysql教程:http://m.dabaquan.cn/v21


  Java實戰項目視頻之egov項目視頻教程【免費下載】:http://m.dabaquan.cn/v83/


  Java學生成績管理系統視頻教程【免費下載】:http://m.dabaquan.cn/v51/


Java數據庫實戰視頻,數據庫查詢效率


       以上就是動力節點Java培訓機構小編介紹的“Java數據庫實戰視頻,數據庫查詢效率”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。


  相關內容


  Java編程學習:MySQL數據庫的學習路線


  2020年Java數據庫筆試題大全


  Java數據庫入門學習,mysql書籍推薦


  學習Java數據庫增刪查改通用方法


  Java學習:數據庫學習條件查詢和排序


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 老司机亚洲精品影视www | 最新国产精品久久精品 | 国产不卡视频在线 | 九九色在线视频 | 国产亚洲精品一区二区在线播放 | 看免费5xxaaa| 在线看日韩 | 国产一级特黄全黄毛片 | 秋霞伊人 | 视频一区久久 | 午夜精品久久久久久久四虎 | 久久国| 亚洲免费不卡 | 久久久噜久噜久久gif动图 | 少妇美女极品美軳人人体 | 色狠狠色综合久久8狠狠色 色狠狠婷婷97 | 久热爱免费精品视频在线播放 | 欧美激情综合亚洲一二区 | 在线观看99 | 99久久精品6在线播放 | 中文字幕欧美日韩va免费视频 | 中文日韩字幕一区在线观看 | 精品国产91久久久久久久a | 日韩中文字幕推理片 | 四虎国产精品成人永久免费影视 | 高清欧美日本视频免费观看 | 九天玄帝诀高清300集免费观看 | 国产成人午夜性a一级毛片 国产成人午夜性视频影院 国产成人系列 | 毛片免费全部播放一级 | 国产xx肥老妇视频奂费 | 性做久久久久久久久25的美女 | 久久99精品久久久久久首页 | 综合图区亚洲白拍在线 | 欧美操穴视频 | 国产精品久久久亚洲第一牛牛 | 国产一级毛片外aaaa | 国产chinesehd在线观看 | 国产一级aaa全黄毛片 | 操你妹影院 | 四虎海外影库www4hu | 91av爱爱|