国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 二、python读写mysql数据库
系列导航
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 一、比对方法和结果
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 二、python读写mysql数据库
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 三、python读mysql写入oceanBbase数据库
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 四、python读mysql写入达梦数据库
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 五、python读mysql写入金仓数据库
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 六、python读mysql数据库
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 七、python读oceanBase数据库
国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 八、python读达梦数据库
一、待测试的表
说明:待测试的表中的数据应该包含各种类型的数据,如下是一个参考见表语句(实际的测试数据字段大约20多个,比这个参考表字段多)
CREATE TABLE DB_TEST_T (
ID INT COMMENT 'ID',
NAME VARCHAR(200) COMMENT '名称',
CONTENT mediumtext COMMENT '内容',,
CREATE_TIME DATETIME COMMENT '时间',
PRIMARY KEY (ID)
) ENGINE=INNODB DEFAULT CHARSET=UTF8MB4 COMMENT='性能测试表';
二、测试mysql写入能力的代码
#coding=utf-8
import pymysql
import time
# pip install pymysql==1.0.2
# 测试mysql单表插入性能
try:
start_time = time.time() # 记录开始时间
connection1 = pymysql.connect(host='192.168.0.100', user='user', password='passwd', database='testdb', port=3306)
# 连接数据库
#mysql
connection2 = pymysql.connect(host='192.168.0.98', user='user', password='passwd', database='mysqldb', port=3306)
# 操作数据库
cursor1 = connection1.cursor() # 创建一个游标
# 操作数据库
cursor2 = connection2.cursor() # 创建一个游标
# 定义SQL查询语句,使用%s作为参数占位符
sql = "SELECT ID,NAME,CONTENT,CREATE_TIME FROM DB_TEST_T"
for i in range(80):
# 执行SQL查询
cursor1.execute(sql)
# 获取查询结果
rows = cursor1.fetchall()
data_to_insert = []
for row in rows:
# 插入数据到数据表的sql语句
insert_data_sql = """insert into DB_TEST_T
(
ID, NAME, CONTENT, CREATE_TIME
)
values
(
%s, %s, %s, %s
);"""
# 待插入的数据
data = (row[0], row[1], row[2], row[3] )
data_to_insert.append(data)
batch_size = 500000
for i in range(0, len(data_to_insert), batch_size):
batch = data_to_insert[i:i + batch_size]
# 批量插入
cursor2.executemany(insert_data_sql, data_to_insert)
connection2.commit() # 提交事务
end_time = time.time() # 记录结束时间
execution_time = end_time - start_time # 计算执行时间
print(f"Function execution took {execution_time} seconds")
except pymysql.Error as e:
print(f'错误:,{e}')
三、细节
从mysql读取14.8W数据,大约6秒左右,写入速度20秒左右,比较稳定,数据量增加后也没有明显的波动。
完整测试代码获取:
(1)登录-注册:http://resources.kittytiger.cn/
(2)搜索:国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比
浙公网安备 33010602011771号