MySQL Oracle 查詢快慢和表的資料量多少有沒有關係?

xuexiaogang發表於2021-12-13

自己原文公眾號: https://mp.weixin.qq.com/s/xieQP6SNryzKOE8R3Qy1Tg


先說一下觀點。沒有!時至今日還是依然有很多人認為資料庫中資料量大了查詢會慢。實在不好意思,這個觀點是不對的。

      我看到一句SQL select * from a where a.code like '%XXXX%'  執行了57秒,這個有點小兒科了。估計大家都知道這樣是用不到索引的,而這個列式有索引的。去掉前%,執行一下15毫秒。57000除以15約等於3800.也就是說不能增加任何硬體,提升了幾千倍。系統的效能明顯提升,而且穩定性也極大提升,至少敢說是支援併發了。

      為什麼前後%呢?基本可以猜出來,設計的時候沒考慮,或者開發偷懶。這些都好解決,改一下SQL程式碼就行。怕就怕,使用者希望的就是前後都模糊,即用一個MYSQL來實現百度的功能,這樣的想法是很可怕的。

     其實一般來說,不用高階的手段,僅僅使用索引就能解決99%的問題。為什麼?因為關係型資料庫的索引構成決定了索引層級都很低。2千萬和20億極有可能是一個層級。關於層級我覺得應該開一篇專題談談。

     很多時候都是其實不是資料庫不行,而是使用方法有問題?

     坡道起步的時候掛五檔會如何?考過駕照的人都知道是熄火。那麼你怪車還是怪坡?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847317/,如需轉載,請註明出處,否則將追究法律責任。

相關文章