親身體(tǐ)會SQLite數據庫建立索引在查詢中(zhōng)的提速作用
時間:2020-06-09 作者:管理員(yuán) 點擊:718
作爲一(yī)個從事程序開(kāi)發十幾年的程序員(yuán),在這十幾年的職業生(shēng)涯裏,剛接觸程序的時候學的是ASP,因爲那時候ASP比較流行,簡單易學。和ASP這種程序搭配的數據庫有Access和MsSql,對于一(yī)般的展示型的企業用網站來說Access這種免安裝的數據庫夠用了,但是Access數據庫一(yī)旦數據庫過大(dà)比如超過50M性能就會變的比較差。後來慢(màn)慢(màn)接觸學習了C#,就把ASP抛棄了,主要用.NET這種開(kāi)發語言了。能和.NET搭配的數據庫就比較多這裏就不一(yī)一(yī)列舉了,我(wǒ)(wǒ)一(yī)開(kāi)始常用的數據庫還是Access和MsSql這兩個,但還是遇到同樣的問題Access性能差MsSql需要空間支持。再後來接觸到了SQLite數據庫,它和Access數據庫一(yī)樣也是輕型的數據庫,都是免安裝的,和.NET配合使用隻需要引用一(yī)個.dll文件即可。
一(yī)開(kāi)始使用SQLite數據庫的時候并沒有深入的研究它,指示按照以前的經驗建庫、建表、建字段。後來就有客戶反映網站打開(kāi)速度慢(màn),打開(kāi)速度大(dà)概兩三秒左右,這個速度還算可以不是特别慢(màn),但是這個客戶比較較真,空間是他自己購買的阿裏雲的主機,于是他給阿裏雲提交工(gōng)單,阿裏雲的售後工(gōng)程師跟蹤了網站進程發現數據庫查詢比較慢(màn)大(dà)概需要2--3秒的時間,截圖如下(xià)。
這個截圖吓了我(wǒ)(wǒ)一(yī)跳,于是我(wǒ)(wǒ)通過FTP下(xià)載了客戶的數據庫發現數據庫并不大(dà)11M多點,裏面主要是文章,大(dà)概有3000多篇文章,這是什麽原因呢?于是我(wǒ)(wǒ)鏈接數據庫,把頁面裏sql查詢語句在數據庫中(zhōng)運行了下(xià)發現需要2S左右的時間。這個結果我(wǒ)(wǒ)真是沒想到,于是搜索了下(xià)SQLite數據庫相關性能方便面的問題,按照網友給出的提示在查詢之前建立索引,索引建好後發現速度大(dà)大(dà)提升了。同樣的查詢語句隻需要幾十毫秒。