千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > mysql 不加條件查詢速度挺快,加上過濾條件就特別慢是為什么?

mysql 不加條件查詢速度挺快,加上過濾條件就特別慢是為什么?

來源:千鋒教育
發布人:xqq
時間: 2023-10-13 15:18:26 1697181506

一、mysql 不加條件查詢速度挺快,加上過濾條件就特別慢是為什么

不加條件查詢,如果是自增主鍵的話,會順序讀盤,順序讀取磁盤數據的話,速度可以很快;添加過濾條件后,如果過濾條件不走索引,數據可能會隨機讀取,所以性能沒有順序讀取速度快。

舉個例子:

有一個放了很多五顏六色珠子的箱子,你從中拿10個珠子只需要抓一把數一下就可以了,但是如果讓你拿10個紅色的珠子呢?當然就慢了。

而如果按照顏色拿珠子是經常要做的事情,那么,怎么樣才能提高效率,加快速度呢?把箱子里分成一格一格,每個格子擺一個顏色的珠子,這樣不就快了嗎?當然,在往箱子里放珠子的時候需要按照顏色擺放。這一格一格對應到數據庫就是索引。

再擴展一下,如果你是賣小商品的,你有很多種商品,但你的箱子數量是有限的,如果每樣商品放一個箱子,那么箱子數量不夠,如果無規律擺放,有空檔就塞進去,那么找起來就麻煩了,那么怎么去做呢?估算每樣商品的數量,然后一號箱子放a,b,c三樣物品,二號箱子放d,e兩件物品,等等,這樣再查找物品時,就不需要每個箱子每個箱子的查找。那么,箱子對應到數據庫其實就是表空間。

延伸閱讀:

二、聲明式與命令式

命令式(Imperative)和聲明式(Declarative)是很早就有的概念,比如 SQL、HTML、CSS 是典型的聲明式語言,而我們使用的絕大部分編程語言都是命令式的。

命令式編程就像它的名字一樣,它由開發者我們一步一步的告述計算機,執行一系列的操作,然后得到想要的結果,起主要作用的是開發者,計算機只是幫助開發者執行計算而已。

而聲明式編程卻與此相反,它不是告述計算機做什么做,而是直接告述計算它想要的結果,至于怎么做,由預先寫好的程序依據一定的算法由計算機自動推算出來。

聲明式與命令式的主要區別在于,聲明式描述的是結果,它不關心過程。比如 SQL,我們告述數據庫的是,我們要查詢某張表滿足某某條件的數據,但我們并不會告述數據庫怎么去查,怎么查數據是數據庫系統自己關心的事情。

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
日本特级婬片免费看 | 亚洲另类日本欧美专区 | 色久综合网精品一区二区 | 婷婷精品人人爱视频 | 亚州αv久久久噜噜噜噜 | 日韩在线观看一区 |