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