成人免费观看网欧美片-成人免费观看视频-成人免费观看男女羞羞视频-成人免费观看的视频黄页-成人免费高清视频-成人免费福利片在线观看

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > mysql 不加條件查詢速度挺快,加上過(guò)濾條件就特別慢是為什么?

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

來(lái)源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-13 15:18:26 1697181506

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

不加條件查詢,如果是自增主鍵的話,會(huì)順序讀盤(pán),順序讀取磁盤(pán)數(shù)據(jù)的話,速度可以很快;添加過(guò)濾條件后,如果過(guò)濾條件不走索引,數(shù)據(jù)可能會(huì)隨機(jī)讀取,所以性能沒(méi)有順序讀取速度快。

舉個(gè)例子:

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

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

再擴(kuò)展一下,如果你是賣(mài)小商品的,你有很多種商品,但你的箱子數(shù)量是有限的,如果每樣商品放一個(gè)箱子,那么箱子數(shù)量不夠,如果無(wú)規(guī)律擺放,有空檔就塞進(jìn)去,那么找起來(lái)就麻煩了,那么怎么去做呢?估算每樣商品的數(shù)量,然后一號(hào)箱子放a,b,c三樣物品,二號(hào)箱子放d,e兩件物品,等等,這樣再查找物品時(shí),就不需要每個(gè)箱子每個(gè)箱子的查找。那么,箱子對(duì)應(yīng)到數(shù)據(jù)庫(kù)其實(shí)就是表空間。

延伸閱讀:

二、聲明式與命令式

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

命令式編程就像它的名字一樣,它由開(kāi)發(fā)者我們一步一步的告述計(jì)算機(jī),執(zhí)行一系列的操作,然后得到想要的結(jié)果,起主要作用的是開(kāi)發(fā)者,計(jì)算機(jī)只是幫助開(kāi)發(fā)者執(zhí)行計(jì)算而已。

而聲明式編程卻與此相反,它不是告述計(jì)算機(jī)做什么做,而是直接告述計(jì)算它想要的結(jié)果,至于怎么做,由預(yù)先寫(xiě)好的程序依據(jù)一定的算法由計(jì)算機(jī)自動(dòng)推算出來(lái)。

聲明式與命令式的主要區(qū)別在于,聲明式描述的是結(jié)果,它不關(guān)心過(guò)程。比如 SQL,我們告述數(shù)據(jù)庫(kù)的是,我們要查詢某張表滿足某某條件的數(shù)據(jù),但我們并不會(huì)告述數(shù)據(jù)庫(kù)怎么去查,怎么查數(shù)據(jù)是數(shù)據(jù)庫(kù)系統(tǒng)自己關(guān)心的事情。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
數(shù)據(jù)庫(kù)中關(guān)系代數(shù)與關(guān)系運(yùn)算的區(qū)別是什么?

一、數(shù)據(jù)庫(kù)中關(guān)系代數(shù)與關(guān)系運(yùn)算的區(qū)別關(guān)系代數(shù)可以理解為一種抽象的查詢語(yǔ)言,它用對(duì)關(guān)系的運(yùn)算來(lái)表達(dá)查詢。運(yùn)算對(duì)象、運(yùn)算符、運(yùn)算結(jié)果是運(yùn)算...詳情>>

2023-10-13 17:00:59
如何建立數(shù)據(jù)庫(kù),利用什么軟件建立數(shù)據(jù)庫(kù)?

一、如何建立數(shù)據(jù)庫(kù)CREATE DATABASE:MySQL語(yǔ)法示例應(yīng)該提到的在MySQL中創(chuàng)建數(shù)據(jù)庫(kù)的名列前茅種方法是使用CREATE DATABASE語(yǔ)句。該語(yǔ)句以指定的...詳情>>

2023-10-13 16:56:43
為什么使用Redis做緩存而不會(huì)使用關(guān)系型數(shù)據(jù)庫(kù)?

一、為什么使用Redis做緩存而不會(huì)使用關(guān)系型數(shù)據(jù)庫(kù)首先要知道緩存緩存是干什么的,緩存是指可以進(jìn)行高速數(shù)據(jù)交換的存儲(chǔ)器,它先于內(nèi)存與CPU交換...詳情>>

2023-10-13 16:43:22
mysql 非少數(shù)索引的等值查詢?yōu)槭裁匆觛ap鎖?

一、mysql 非少數(shù)索引的等值查詢?yōu)槭裁匆觛ap鎖mysql 中非少數(shù)索引使用的也是 B+ 樹(shù)來(lái)組織數(shù)據(jù)結(jié)構(gòu)。假設(shè) id 的索引結(jié)構(gòu)在葉子節(jié)點(diǎn)從左到右的...詳情>>

2023-10-13 16:33:11
mongoDB和python連接處理數(shù)據(jù)慢怎么解決?

一、mongoDB和python連接處理數(shù)據(jù)慢怎么解決mongoDB和python連接處理數(shù)據(jù)慢可以考慮用并行計(jì)算,單機(jī)多線程并行,或者集群并行。集算器提供封裝...詳情>>

2023-10-13 16:29:19
快速通道