国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
當前位置: 首頁 - 科技 - 知識百科 - 正文

[MySQL]用索引加速你的查詢速度

來源:懂視網 責編:小采 時間:2020-11-09 13:17:25
文檔

[MySQL]用索引加速你的查詢速度

[MySQL]用索引加速你的查詢速度:好久沒有寫點東西了, 與其說是忙不如說是太懶。 先問個問題:[48,281,1,56,99,6]和[1,6,18,45,56,99,281]是兩個完全一樣的數組,前者是無規律可言的,后者是已經排好序的,要想把每個數組里邊大于100的數找出來或者排序 那一個更快一些? 不用我說,地球人
推薦度:
導讀[MySQL]用索引加速你的查詢速度:好久沒有寫點東西了, 與其說是忙不如說是太懶。 先問個問題:[48,281,1,56,99,6]和[1,6,18,45,56,99,281]是兩個完全一樣的數組,前者是無規律可言的,后者是已經排好序的,要想把每個數組里邊大于100的數找出來或者排序 那一個更快一些? 不用我說,地球人

好久沒有寫點東西了, 與其說是忙不如說是太懶。 先問個問題:[48,281,1,56,99,6]和[1,6,18,45,56,99,281]是兩個完全一樣的數組,前者是無規律可言的,后者是已經排好序的,要想把每個數組里邊大于100的數找出來或者排序 那一個更快一些? 不用我說,地球人

好久沒有寫點東西了, 與其說是忙不如說是太懶。

先問個問題: [48,281,1,56,99,6] 和 [1,6,18,45,56,99,281] 是兩個完全一樣的數組,前者是無規律可言的,后者是已經排好序的,要想把每個數組里邊大于100的數找出來或者排序 那一個更快一些? 不用我說,地球人除了傻子都知道是后者。索引就是數據表按照某一個字段或者幾個字段做出排序的數據結構。

因為已經存了這些字段的排列順序,我們就可以理解為這些數據是按照某些字段排好序的,這樣取數據的時候速度就會快樂好多倍, 當數據量較少的時候索引的優勢體現的并不明顯, 當數據量非常大的時候,你就會發現有沒有索引數據庫的性能會是天壤之別。

但是索引有幾個誤區:

1. 索引越多越好。

好多人都說這個是錯的,我看未必全錯!要根據實際情況來,如果你的數據庫是讀寫分開,在Master上寫數據,在Slave上讀數據, 完全可以單獨在Slave上多創建幾個索引 。

別的地方的解釋是索引會影響數據寫入的性能,還有索引多了會占用更多的硬盤空間。要想數據按照某一個或者多個字段有序地排列,系統會保存一個索引文件,多占一些硬盤空間是難免的, 另外插入記錄和修改記錄的時候要重新計算該記錄的排序位置,并更新索引文件, 所以讓insert和update 操作變慢也是肯定的。

這種想法基本上已經過時了,現在大多數的應用,尤其是數據量大到讓你不得不去看一些索引優化的時候,我個人覺得你的數據庫該考慮采用replication架構了,采用replication 架構的話一種提高性能非常主流又非常有效,那就是讀服務器和寫服務器分開。 Replication架構很好的一點就是, master 與 slave的結構可以不一樣,可以采用不同的存儲引擎,可以建不同的索引,他們是通過binlog來進行數據同步的, 但是主從數據庫不一致是有底線的, 你必須要保證你的程序生成的sql語句在master和slave上是都可以執行的而且效果一樣。 這樣的話插入在master上, 我們不建索引, 讀取在從服務器上我們可以多建一些索引,對數據庫的插入影響還是不大的。 另外現在還計較這些硬盤空間的人完全就是扯淡!! 硬盤太便宜了,只要性能上的去, 流量上的去 還在乎這點空間嗎?

2. 索引建在要查詢的字段上

哥可以很負責任地告訴你, 這絕對是錯的!! 我們可以分解查詢操作,沒有索引的時候,系統是這樣執行你的 select col1, col2 from table where col3=xxxx :

系統先去查數據表table, 然后一條一條地計算 where 子句的東西 col3=xxx是否為true, 是true的話就取。索引的用途是不用再一條一條遍歷了,你要查詢的列已經基本有序, 采用二分法直接去查找就行了。效率節約到這里了, 跟你要查詢的列屁關系沒有。

當索引出現在 where 子句中有幾點要注意:

1. where sin(column) > 0.5 , 當索引列作為函數參數的時候, 系統不會采用索引, 解決的辦法就是換算一下,盡量不要索引列作為參數

2. where column like '%xxxx' , 通配符出現在左邊的時候, 系統不會使用索引

(未完待續,待潤色)

聲明: 本文采用 CC BY-NC-SA 3.0 協議進行授權

轉載請注明來源:小景的博客

本文鏈接地址:http://www.phpv5.com/blog/archives/374/

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

[MySQL]用索引加速你的查詢速度

[MySQL]用索引加速你的查詢速度:好久沒有寫點東西了, 與其說是忙不如說是太懶。 先問個問題:[48,281,1,56,99,6]和[1,6,18,45,56,99,281]是兩個完全一樣的數組,前者是無規律可言的,后者是已經排好序的,要想把每個數組里邊大于100的數找出來或者排序 那一個更快一些? 不用我說,地球人
推薦度:
標簽: 查詢 速度 加速
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top 主站蜘蛛池模板: 日韩综合第一页 | 91精品国产亚一区二区三区 | 亚洲97| 在线免费观看国产 | 国产精品久久久久激情影院 | 国产精选免费视频 | 国产欧美精品区一区二区三区 | 精品在线免费观看 | 欧美精品亚洲网站 | 香蕉久久ac一区二区三区 | 在线视频亚洲欧美 | 高清一区二区亚洲欧美日韩 | 日韩电影在线 | 亚洲性久久久影院 | 久久久久9999 | 一区二区免费在线观看 | 国产精品欧美激情在线播放 | www.亚洲欧美| 欧美专区日韩 | 国产成人综合久久精品下载 | 亚洲色图国产精品 | 久久国产综合精品欧美 | 久久久一区二区三区 | 成人精品视频一区二区三区 | 欧美亚洲另类综合 | 欧美成人免费xxx大片 | 免费国产最新进精品视频 | 护士精品一区二区三区 | 一区二区视频 | 国产最新视频 | 成人免费久久精品国产片久久影院 | 欧美色图中文字幕 | 国产欧美第一页 | 久久伊人精品一区二区三区 | 精品视频第一页 | 国产九九在线 | 欧美国产日韩一区二区三区 | 日本啊v| 久久久久免费精品国产小说 | 7777精品伊人久久久大香线蕉 | 韩国一区 |