mysql的i o讀取大 資料庫I O讀寫速度

2021-10-17 17:45:46 字數 934 閱讀 7861

工作中遇到的乙個實際問題。

問題如下:

長時間,大量插入資料的速度慢的問題。

7*24小時的不間斷想資料庫中插入資料,單錶的插入資料量平均目前平均35條/秒。有

40多個單表表都需要插入。插入資料的同時還要對40多個單錶進行更新和查詢操作。

如此頻繁的對資料庫進行操作的情況下,資料庫的速度已經不能滿足我們的需求了。

經過了一系列的sql文,記憶體設定,快取設定之後還是無法滿足。

最後經過在linux下top進行分析,發現原來是orcale的i/o讀寫速度問題。並且硬碟處

理速度不及時還導致cpu %wa等待。

經過統計情況如下:

插入量:40*35=1400條/秒

查詢量:40*100=4000條/秒

更新量:40*10=400條/秒

刪除量:1400*66%=900條/秒

每秒處理共約:6700條資料。

這樣乙個int佔4個位元組,乙個double佔8個位元組,乙個varchar(200)佔200個位元組.....

一條資料有 800~1400個位元組 按照平均一條資料1024個位元組來算,就是1條資料占用

1kb的空間。

那麼硬碟最少要有6700*1kb =6.7m 的讀寫速度。本來我們用的硬碟是7200的,極限的

讀寫速度是30m-40m/秒左右,為什麼6.7m左右就承受不住了呢?

經過分析認為,硬碟的測試速度只是單一的讀寫。但是在頻繁的讀寫刪除面前遠遠達不到那個速度(磁頭不停的切換,扇區不停的反轉)

注意:這裡請不要長生誤區:6.7m是每秒的讀寫速度,由於我做了優化每秒還會刪除插入資料的66%,這樣最後儲存到磁碟的每秒只有400k左右。

一天40g的資料 平均每秒400多k。

解決方案:表分割槽 + 磁碟陣列 + raid0. 理論上能提高幾十倍甚至幾百倍的速度。

具體實現細節。。。略。。。。。。。

關於資料庫讀取速度與檔案IO讀取速度的比較分析

最近看到了這個很有意思的問題,以前也沒有思考過。如果有人問,到底是在 中跟 io檔案交換速度快,還是跟資料庫交換速度快呢?這個問題還是比較複雜的,資料庫的儲存資料方式要比單純的檔案儲存複雜很多。其實,如果我們熟悉資料庫的結構,那麼很容易解決這個問題。簡單的來講,乙個執行的資料庫例項是由兩部分組成的,...

python之mysql資料庫讀取

首先我們先安裝讀取mysql的第三方庫 pip install pymysql 安裝成功後,我們穿件乙個.py檔案import pymysql 我們先看看pymysql給我們提供了什麼 跳轉到 init 介面 然後跳轉到這個介面,可以看到注釋給我們說明各個引數的用途,再移動下去 就可以看到mysql...

Python讀取mysql資料庫資料出現中文亂碼

python連線mysql資料庫時,讀取資料庫中的中文出現亂碼,所有中文都顯示為問號了,我解決問題的步驟如下 開發環境 python版本 python3.6 mysql版本 mysql 5.5.56 winx64 pymysql 版本 pymysql 0.7.11 執行pip install pym...