MySQL的MyISAM和InnoDB的大資料量查詢效能比較
因為工作關係,有一個超過11億記錄的MySQL資料庫,之前一直以為MyISAM引擎的查詢效能會超過InnoDB,這兩天特意測試了一下,不過因為資料量太大,轉換引擎就花了幾天時間。
測試環境:
DELL 860伺服器,CPU Xeon3210, 記憶體8G
MySQL版本5.5.13,安裝了兩份例項,埠分別是3306(InnoDB)和3307(MyISAM)
MySQL客戶端工具HeidiSQL 6.0.0.3603,查詢語句:
select count(1) from mytable where update_datetime>'1900-01-01'
update_datetime欄位都做了索引
查詢時間分別如下(一共1,132,191,947條記錄):
InnoDB:763.672秒
MyISAM:4094.621秒
InnoDB比MyISAM快4倍多
以後有機會再測試一下MS SQL和Oracle的效能
相關推薦
MySQL的MyISAM和InnoDB的大資料量查詢效能比較
因為工作關係,有一個超過11億記錄的MySQL資料庫,之前一直以為MyISAM引擎的查詢效能會超過InnoDB,這兩天特意測試了一下,不過因為資料量太大,轉換引擎就花了幾天時間。 測試環境: DELL 860伺服器,CPU Xeon3210, 記憶體8G MySQL版本5
四種快排與兩種歸併和堆和插入排序 大資料量執行時間比較
#include"iostream" #include"iomanip" #include"stdlib.h" #include"time.h" #include"string" /*由於我電腦記憶體有限所以資料量最大能執行在20w*/ //三路快排適用於有大量重複值的資
記一次大資料量處理效能調優的過程總結
一、背景介紹 1、系統的架構是spring+mybaties+oracle。 2、系統處理的資料量在五十萬到百萬級之間,採用了kafka進行分散式處理,主要功能和要優化的模組在資料清算和資料匯出。 二、可優化點介紹 1、kafka—分散式訂閱-釋出訊息系統 kafka是一款
大資料量查詢
問題 在使用sql查詢大量的資料時,發現十分耗時 解決 當然解決方法會有很多。在這裡記錄一些自己用到的方法。一般資料一大,速度就會下降。所以應該有效的切割這些資料。比如每1000條查詢一次。 同時查詢條件儘量選擇主鍵id,這時候的查詢效果會非常好。如果使用
Oracle 大資料量查詢優化
前言:平常寫的SQL可能主要以實現查詢出結果為主,但如果資料量一大,就會突出SQL查詢語句優化的效能獨特之處.一般的資料庫設計都會建索引查詢,這樣較全盤掃描查詢的確快了不少.下面總結下SQL查詢語句的幾個優化效率的地方,經驗有限,難免有不足. 1.對查詢進行優化,應儘
.Net中EF針對大資料量查詢超時的一種優化
舊程式碼:--receiptIds id集合,每次查1000左右var mappingList = new List<FinanceSettlementMapping>();mappingList.AddRange(SettlementMappingRepos
Mysql千萬級大資料量查詢優化
1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t where num i
c++程式大資料量處理效能優化
1. 現在處理的程式為每秒鐘處理20w條資料,甚至更多,加快處理速度,總結了一些經驗,記錄下來程式的資料結構裡面儘量避免string,map這樣的資料結構,因為string雖然不用自己管理指標,但是在構造和析構的時候很費資源,還有在執行c_str()的時候要new出一塊記憶體來
關於大資料量查詢報表優化
針對資料量巨大的報表查詢,總結了一下幾個處理方法: 看一個運用案例:多粒度(年月日,省、地市、熱點、ac、ap)下每天20W條,每月800W條,自由選擇35天內資料的查詢。 直接查詢頁面崩潰,運用了以下幾點,基本上能保證在1-2分鐘(100秒左右)內頁面相應載入。 一:
大資料量查詢優化
問題描述:涉及到大資料量,多迴圈查詢的時候,往往查詢的速度會變慢,影響系統的使用效能。該問題,在測試環境尚不明顯,因為測試環境的資料量畢竟是有限的。 但是,一旦將程式碼更新到線上的真實系統,因為資料量一下子增大,會造成資料查詢的緩慢,所造成的嚴重遲滯,就不能被忽略了。 業
提高MYSQL大資料量查詢的速度
1.對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by 涉及的列上建立索引。 2.應儘量避免在 where 子句中對欄位進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描,如:select id from t wher
大資料量查詢容易OOM?試試MySQL流式查詢
![mark](https://img2020.cnblogs.com/other/1769816/202101/1769816-20210104093317640-597087048.png) ## 一、前言 程式訪問 `MySQL` 資料庫時,當查詢出來的資料量特別大時,資料庫驅動把載入到的資料全部載入到
大資料量情況下查詢效能低,耗時長的一種問題以及解決思路
背景交代: 1 mongodb 有500萬條資料 2 經過過濾 還有20多萬條資料 要得到上述20w條資料,一次查詢得到20多萬條,很可能會產生效能問題,於
資料新增非同步解析重新整理大資料量redis (——)(二) SpringBoot之CommandLineRunner介面和ApplicationRunner介面
在spring boot應用中,我們可以在程式啟動之前執行任何任務。為了達到這個目的,我們需要使用CommandLineRunner或ApplicationRunner介面建立bean,spring boot會自動監測到它們。這兩個介面都有一個run()方法,在實現介面時需要覆蓋該方法,並使用@
afs在大資料量時查詢優化
afs查詢,mule報錯的問題 1.mule報錯的原因 a)mule預設請求響應時間為10s,當請求返回的時間超過10秒就會報錯 2.導致請求時間過長的原因 a)欄位沒有建索引,count(*)統計記錄總數耗時過長(283W記錄統計耗時8-9s) b)一次性請求數量過多(經測試500條資料4
大資料量表的查詢優化及索引使用
一、對於運算邏輯,儘可能將要統計的各專案整合在一個查詢語句中計算,而不是用分組條件或分專案呼叫多個查詢語句,而後在程式碼裡計算結果。 二、查詢語句的優化,諸如不用"select *"、多表關聯查詢時新增別名於查詢欄位上、避免使用in、not in關鍵字、非去除重複時用union all替換uni
MySQL大資料量分頁查詢方法及其優化 MySQL大資料量分頁查詢方法及其優化
MySQL大資料量分頁查詢方法及其優化 ---方法1: 直接使用資料庫提供的SQL語句---語句樣式: MySQL中,可用如下方法: SELECT * FROM 表名稱 LIMIT M,N ---適應場景: 適用於資料量較少的情況(元組百/千級) --
TensorFlow和Keras解決大資料量記憶體溢位問題
記憶體溢位問題是參加kaggle比賽或者做大資料量實驗的第一個攔路虎。 以前做的練手小專案導致新手產生一個慣性思維——讀取訓練集圖片的時候把所有圖讀到記憶體中,然後分批訓練。 其實這是有問題的,很容易導致OOM。現在記憶體一般16G,而訓練集圖片通常是上萬張,而且RGB圖,還很大,VGG16
zList一個塊狀連結串列演算法可以申請和釋放同種物件指標,對於大資料量比直接new少需要差不多一半記憶體
zList是一個C++的塊狀記憶體連結串列,特點: 1、對於某種類別需要申請大量指標,zList是一個很好的幫手,它能比new少很多記憶體。 2、它對記憶體進行整體管理,可以將資料和檔案快速互操作 3、和vector物件儲存對比,vector儲存的物件不能使用其指標,因為vector內容變化時vecto
用對地方的索引可以讓你的大資料量的查詢效率飛起來
前言 之前在做專案的時候,接觸到的千萬級以上的表資料不是太多,對於聯合索引的認知不是太深刻,用索引與不用索引以及索引的建立順序和規則之前的區別不是太明顯,最近手頭有優化查詢千萬級資料量的慢sql的任務,優化前,查詢時間達到了60秒,導致前端請求掛起,做了相應的優化後,查詢千萬級別資料時,速度基本保持在零點