1. 程式人生 > >通過索引,極大提高MySQL大資料量下的查詢效率

通過索引,極大提高MySQL大資料量下的查詢效率

我在這裡測試了兩個表的左連線查詢,SQL語句是:

select a.blog_id,a.blog_title,a.blog_thumb,a.blog_click,a.blog_addtime,a.blog_show,b.blog_category_name from `think_blog` a left join `think_blog_category` b on a.blog_category_id=b.blog_category_id where 1 order by blog_addtime desc limit 0,100

兩個表分別是,think_blog和think_blog_category,分別有360萬條和7條測試資料



如果設計表時沒有索引,則執行上述查詢語句需要花費的時間是:


我給兩個表增加了索引,見下圖



然後再執行上述查詢語句,奇蹟發生了


大笑這一事實告訴我們,不是DBA的運維不是好的PHP程式設計師!

PS:覺得好要果斷關注我哈害羞

相關推薦

通過索引極大提高MySQL料量查詢效率

我在這裡測試了兩個表的左連線查詢,SQL語句是:select a.blog_id,a.blog_title,a.blog_thumb,a.blog_click,a.blog_addtime,a.blog_show,b.blog_category_name from `thin

用對地方的索引可以讓你的料量查詢效率飛起來

前言 之前在做專案的時候,接觸到的千萬級以上的表資料不是太多,對於聯合索引的認知不是太深刻,用索引與不用索引以及索引的建立順序和規則之前的區別不是太明顯,最近手頭有優化查詢千萬級資料量的慢sql的任務,優化前,查詢時間達到了60秒,導致前端請求掛起,做了相應的優化後,查詢千萬級別資料時,速度基本保持在零點

提高MYSQL料量查詢的速度

1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t wher

mysql料量優化

1 優化sql和索引2 增加快取如:redis3 主從複製或主主複製,讀寫分離4 利用mysql自帶分割槽表5 先做垂直拆分,將一個大系統分為多個小系統,也就是分散式6 水平切分,要選擇一個合理的sharding key,為了有好的查詢效率,表結構也要改動,做一定的冗餘,應用也要改,sql中儘量帶shardi

料量查詢顯示優化方案小結

# 大資料量下查詢顯示優化方案小結 # 最近工作中,遇到了優化大批量資料查詢和顯示的問題,資料量在10W級別。經過反覆設計和討論,最終得到優化到了較為滿意的效果,在此記錄小結下,在解決此類問題中的思考。 ## 問題背景說明 ## 通常情況下,使用者查詢資料量不超過1千條,但有幾個大戶,通過某種方式,生成

MySQL料量分頁查詢方法及其優化 MySQL料量分頁查詢方法及其優化

MySQL大資料量分頁查詢方法及其優化   ---方法1: 直接使用資料庫提供的SQL語句---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適應場景: 適用於資料量較少的情況(元組百/千級) --

根據一個類裡的某個欄位進行分類(料量

應用情景:貨物類需要按照批次分類,以樹列表形式展示 父列表展示每個批次中任意的一個貨物; 點選該父列表中的某行,下拉展示子列表,子列表展示該行同一批次的所有單號; 小白版解決方案:邏輯分頁 先查詢所有資料到記憶體,再從記憶體擷取需要資料採用程式內部邏

MySQL料量分頁查詢方法及其優化 ---方法1: 直接使用資料庫提供的SQL語句 ---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適

測試實驗 1.   直接用limit start, count分頁語句, 也是我程式中用的方法: select * from product limit start, count 當起始頁較小時,查詢沒有效能問題,我們分別看下從10, 100, 1000, 10000開始分頁的執行時間(每頁取20條), 如

MySQL 料量表優化方案

單表優化 除非單表資料未來會一直不斷上漲(例如網路爬蟲),否則不要一開始就考慮拆分,拆分會帶來邏輯、部署、運維的各種複雜度 一般以整型值為主的表在 千萬級以下,字串為主的表在 五百萬以下是沒有太大問題的。而事實上很多時候 MySQL 單表的效能依然有不少優化空間,甚至能正

mysql 料量分頁優化

假設有一個千萬量級的表,取1到10條資料; select * from table limit 0,10; select * from table limit 1000,10; 這兩條語句查詢時間應該在毫秒級完成; select * from table limit

MySQL料量分頁查詢方法及其優化

方法1: 直接使用資料庫提供的SQL語句 語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N 適應場景: 適用於資料量較少的情況(元組百/千級) 原因/缺點: 全表掃描,速度會很慢 且 有的資料庫結果集返回不穩定(如某次返回

java mysql料量批量插入與流式讀取分析

總結下這周幫助客戶解決報表生成操作的mysql 驅動的使用上的一些問題,與解決方案。由於生成報表邏輯要從資料庫讀取大量資料並在記憶體中加工處理後在 生成大量的彙總資料然後寫入到資料庫。基本流程是 讀取->處理->寫入。 1 讀取操作開始遇到的問題是當sql查詢資料量比較大時候基本讀不出來。開始

mysql 料量時 limit查詢優化

一般,我們在做分頁時,用的是語句如下:select * from table LIMIT 5,10; #返回第6-15行資料但是,如果資料量很大,比如>1000萬,則利用以上的查詢會非常慢,可以利用以下語句進行優化:Select * From table Where I

MySql 料量快速插入和語句優化

INSERT語句的速度 插入一個記錄需要的時間由下列因素組成,其中的數字表示大約比例:連線:(3) 傳送查詢給伺服器:(2) 分析查詢:(2) 插入記錄:(1x記錄大小) 插入索引:(1x索引) 關閉:(1) 這不考慮開啟表的初始開銷,每個併發執行的查詢開啟。

料量高併發同步的講解(不看保證你後悔)

   對於我們開發的網站,如果網站的訪問量非常大的話,那麼我們就需要考慮相關的併發訪問問題了。而併發問題是絕大部分的程式設計師頭疼的問題, 但話又說回來了,既然逃避不掉,那我們就坦然面對吧~今天就讓我們一起來研究一下常見的併發和同步吧。    為了更好的理解併發和同步,我們

MySQL料量快速分頁實現

以下分享一點我的經驗 一般剛開始學SQL語句的時候,會這樣寫 程式碼如下: SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在資料達到百萬級的時候,這樣寫會慢死 程式碼如下: SELECT * FROM tabl

Mysql料量儲存及訪問的設計討論-設計

轉載請註明來源:Mysql大資料量儲存及訪問的設計討論    一、引言   隨著網際網路應用的廣泛普及,海量資料的儲存和訪問成為了系統設計的瓶頸問題。對於一個大型的網際網路應用,每天幾十億的PV無疑對資料庫造成了相當高的負載。對於系統的穩定性和擴充套件性造成了極大的問題。通過

MySQL料量分頁SQL語句優化

分頁程式原理很簡單,這裡就不多說了,本篇文章主要說的是在資料表記錄量比較大的情況下,如何將分頁SQL做到更優化,讓MySQL執行的更快的方法。 一般的情況下,我們的分頁SQL語句是這樣的:

Mysql料量問題與解決

今日格言:瞭解了為什麼,問題就解決了一半。 Mysql 單表適合的最大資料量是多少? 我們說 Mysql 單表適合儲存的最大資料量,自然不是說能夠儲存的最大資料量,如果是說能夠儲存的最大量,那麼,如果你使用自增 ID,最大就可以儲存 2^32 或 2^64 條記錄了,這是按自增 ID 的資料型別 int

afs在料量查詢優化

afs查詢,mule報錯的問題 1.mule報錯的原因 a)mule預設請求響應時間為10s,當請求返回的時間超過10秒就會報錯 2.導致請求時間過長的原因 a)欄位沒有建索引,count(*)統計記錄總數耗時過長(283W記錄統計耗時8-9s) b)一次性請求數量過多(經測試500條資料4