外键查询_传统关系型数据库查询性能提高思路
生活随笔
收集整理的這篇文章主要介紹了
外键查询_传统关系型数据库查询性能提高思路
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
相信現階段依然有許多的企業信息化項目依然采用單體架構,其數據存儲主要方式依然以關系型數據庫為主,比如oracle、mysql、postgresql等。企業初期,各種原因導致研發人員身兼數職,都是全棧的角色。當然從業務上來說,用戶量不大,并發數小,只要實現需求功能就可以了。當系統運行到一定數量級,一定會面臨數據庫的查詢問題。下文從數據庫設計和查詢簡單說說怎么提高查詢性能。一、數據庫設計1、使用范式設計合理設計數據庫,為了考慮性能,可不用實現全部范式。在實踐中使用第一和第二范式即可(具體范式規則可問度娘)。2、表字段使用合理的數據類型,盡量不用blob、clob、text等大字段,如必須使用,可增加擴展表,從需求上,這些大字段在列表查詢時不用展示,在展示詳情時再發起查詢即可。對于圖片和視頻等,只保存路徑信息,實際文件保存在文件系統中。3、在條件查詢字段增加索引,索引是傳統模式下,性能提升的利器。在不增加任何硬件的前提下,索引可以大大的提高應用查詢效率。4、數據庫端不做任何外鍵,在應用端負責外鍵引用。這里需要注意的是,有A(id),B(id,aid),設計這種表的時候一定要注意關聯字段的數據類型必須要一致。A表中id字段是int8,那么B表中aid字段就必須設置為int8,而不能用varchar字段。二、查詢優化1、使用exists替代in。開發人員由于不考慮數據查詢效率,使用exists可以使用表索引,從而提升效率。當前前提是exists的結果集是一個大結果集。如果目標結果集只是幾十條數據,使用in也是可以的。2、盡量少用子查詢。子查詢的性能很低,建議使用表連接的方式來優化。3、優化or查詢。實際開發中or查詢常見,可以通過union中改變or為兩條and語句來提高查詢效率。4、不濫用多字段like。業務方喜歡在前端頁面使用一個輸入框實現多字段檢索。實現方式通常是多字段or加like。這里推薦一種改善方案,在前端把查詢字段明確化,去掉一個輸入框接收查詢參數。如果有技術力量,可以加上搜索引擎,則可以解決這個需求。以上從數據庫設計和查詢兩個方面簡單闡述了如何提升查詢性能。查詢優化是一個研發團隊的核心競爭力,在初創階段,業務為王,技術是輔助性的。但是,技術也需要緊緊貼合業務,避免由于技術債務導致業務不能快速發展。應用性能提升之道任重而道遠,歡迎交流。
總結
以上是生活随笔為你收集整理的外键查询_传统关系型数据库查询性能提高思路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 递归实现无限极分类和排序_PHP
- 下一篇: kettle获取当前日期_kettle中