国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

使用Python如何測試InnoDB與MyISAM的讀寫性能

2020-02-15 22:59:17
字體:
來源:轉載
供稿:網友

前言

由于近期有個項目對系統性能要求很高,技術選型上由于種種原因已經確定使用Mysql數據庫,接下來就是要確定到底使用哪種存儲引擎。我們的應用是典型的寫多讀少,寫入內容為也很短,對系統的穩定性要求很高。所以存儲引擎肯定就定在廣泛使用的Innodb和MyISAM之中了。

至于兩者的比較網上也有很多,但是畢竟這個事情也不復雜,決定還是自己來做,去驗證一下在我們的場景下誰更優。

本文測試所用工具版本如下:

Tools Version
MySQL 5.7.18
Python 3.6
Pandas 0.23

① 創建數據表

首先我們需要把兩張使用了不同引擎的表創建出來,使用為了方便起見,我們直接使用Navicat創建了兩張 員工信息表,具體字段如下:

使用InnoDB引擎的表,設計表名為innodb,選項如下:

 

使用InnoDB引擎的表,設計表名為myisam,選項如下:

 

因為是簡單操作,創建的具體細節就不詳述了,至此,我們的數據庫就把使用 InnoDB 和 MyISAM 兩種引擎的表創建好了。

② 單線程寫入性能對比

1. InnoDB 引擎

執行以下代碼,往使用了InnoDB引擎的表格插入1000條數據

import pandas as pdfrom sqlalchemy import create_engineimport timedb = create_engine('mysql+pymysql://mysql:123456@127.0.0.1:3306/test')start = time.time()for i in range(1000): data = {'index': i,   'name': 'name_' + str(i),   'age': i,   'salary': i,   'level': i} df = pd.DataFrame(data, index=[0]) df.to_sql('innodb', db, if_exists='append', index=False)end = time.time()print(end - start)

執行3次上面的代碼,得到程序寫入1000條數據的時間分別為:12.58s、14.10s、12.71s,平均寫入時間為 13.13s。

2. MyISAM 引擎

執行以下代碼,往使用了MyISAM引擎的表格插入1000條數據

import pandas as pdfrom sqlalchemy import create_engineimport timedb = create_engine('mysql+pymysql://mysql:123456@127.0.0.1:3306/test')start = time.time()for i in range(1000): data = {'index': i,   'name': 'name_' + str(i),   'age': i,   'salary': i,   'level': i} df = pd.DataFrame(data, index=[0]) df.to_sql('myisam', db, if_exists='append', index=False)end = time.time()print(end - start)

執行3次上面的代碼,得到程序寫入1000條數據的時間分別為:6.64s、6.99s、7.29s,平均寫入時間為 6.97s。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辉县市| 三台县| 靖宇县| 信丰县| 育儿| 东港市| 秦皇岛市| 广德县| 进贤县| 基隆市| 会泽县| 安福县| 株洲县| 浦东新区| 丰原市| 沾化县| 辉南县| 绍兴县| 冀州市| 武强县| 锡林郭勒盟| 闽清县| 乌拉特前旗| 杭锦后旗| 寿光市| 木兰县| 永嘉县| 定兴县| 饶阳县| 通江县| 商丘市| 晋江市| 仙居县| 青铜峡市| 泸州市| 秦皇岛市| 扎囊县| 山阴县| 大石桥市| 青田县| 镇赉县|