一直觉得mysql的Memony内存引擎挺好,其他数据库都没有,正好有空,所以试试。

版本:mysql-installer-community-8.0.17.0

os:windows10 SSD硬盘,本机访问

简单表,一个ID字段为主键,一个字符串字段

1. Memony引擎

单条插入10000条耗时18s,批量事务提交插入10000条耗时18s。

2. Myisam引擎

单条插入10000条耗时19s,批量事务提交插入10000条耗时19s。

3. InnoDB引擎

单条插入10000条耗时40s,批量事务提交插入10000条耗时2s。

 private void button1_Click(object sender, EventArgs e)
{
//删除
DateTime d = DateTime.Now;
string sql = "delete from " + this.textBox1.Text;
MySqlConnection cn = new MySqlConnection(this.connstring);
cn.Open();
MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(sql, cn);
cmd.ExecuteNonQuery();
cn.Close(); this.textBox2.Text = (DateTime.Now - d).TotalMilliseconds.ToString();
} private void button2_Click(object sender, EventArgs e)
{
//单条增加
DateTime d = DateTime.Now;
MySqlConnection cn = new MySqlConnection(this.connstring);
cn.Open();
string sql = "insert into " + this.textBox1.Text + "(a,v) values({0}, '{1}')";
for (int m = 0; m < 10000; m++)
{
string s = string.Format(sql, m, System.Guid.NewGuid().ToString() + "在");
MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(s, cn);
cmd.ExecuteNonQuery();
}
cn.Close(); this.textBox2.Text = (DateTime.Now - d).TotalMilliseconds.ToString();
} private void button3_Click(object sender, EventArgs e)
{
//单条增加
DateTime d = DateTime.Now;
MySqlConnection cn = new MySqlConnection(this.connstring);
cn.Open();
MySqlTransaction tran = cn.BeginTransaction();
string sql = "insert into " + this.textBox1.Text + "(a,v) values({0}, '{1}')";
for (int m = 0; m < 10000; m++)
{
string s = string.Format(sql, m, System.Guid.NewGuid().ToString() + "在");
MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand(s, cn);
cmd.Transaction = tran;
cmd.ExecuteNonQuery();
}
tran.Commit();
cn.Close();
this.textBox2.Text = (DateTime.Now - d).TotalMilliseconds.ToString();
} private void button4_Click(object sender, EventArgs e)
{
//查询
MySqlDataAdapter da = new MySqlDataAdapter("select * from " + this.textBox1.Text, this.connstring);
DataSet ds = new DataSet();
da.Fill(ds, "t");
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
}

下面N多年前的测试,可做对比:

https://www.cnblogs.com/81/archive/2009/07/31/1535694.html

https://www.cnblogs.com/81/archive/2008/12/06/1348896.html

感觉mysql不是太高

mysql测试记录的更多相关文章

  1. 【转】MySQL 当记录不存在时insert,当记录存在时update

    MySQL当记录不存在时insert,当记录存在时更新:网上基本有三种解决方法 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句 ...

  2. MySQL 当记录不存在时insert,当记录存在时update(ON DUPLICATE KEY UPDATE, REPLACE语句)

    MySQL 当记录不存在时insert,当记录存在时更新 网上基本有三种解决方法. 第一种:示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语 ...

  3. MySQL 当记录不存在时insert,当记录存在时update

    MySQL当记录不存在时insert,当记录存在时更新:网上基本有三种解决方法 第一种: 示例一:insert多条记录 假设有一个主键为 client_id 的 clients 表,可以使用下面的语句 ...

  4. MySQL测试代码

    MySQL测试代码 # 注释内容 -- 注释内容 -- 创建maizi数据库 CREATE DATABASE IF NOT EXISTS `maizi` DEFAULT CHARACTER SET ' ...

  5. Atitit 分区后的查询  mysql分区记录的流程与原理

    Atitit 分区后的查询  mysql分区记录的流程与原理 1.1.1. ibd是MySQL数据文件.索引文件1 1.2. 已经又数据了,如何分区? 给已有的表加上分区 ]1 1.3. 分成4个区, ...

  6. PHP获取MySql新增记录ID值的方法

    今天发现用mysql_insert_id()获取到的新增记录的id不正确, 虽然发现源代码的事务写的有问题,但是最根本的原因是,我插入数据的id类型是bigint型 获取MySql新增记录ID值的方法 ...

  7. linux .net mono方案测试记录与报告(一)

    第一阶段 linux .net 方案测试 硬件为4核8线程的笔记本i7-4710mq 分配了4个线程 情况下 1.方案一 nginx+fastcgi-mono-server4方式 性能为每秒处理140 ...

  8. Yii 增删改查 测试记录

    亲们, 我是yii小白 不要笑话我奥.今天白天写一个管理模块涉及到 yii ar 下的  curd 操作,做 update 操作时纠结了好久,今天晚上花点时间学习, 下面写下我的测试记录 代码如下: ...

  9. MySQL如何记录binlog

    --MySQL如何记录binlog   -------------------------------2014/07/08     binlog文件的内容 log event       MySQL的 ...

随机推荐

  1. [Vuex系列] - Actions的理解之我见

    Actions如何定义的 恕小端不才,对Action的总结如下: Action 可以提交mutation方法,通过mutation来改变state Action 函数可以接收一个context对象,通 ...

  2. 用js原生加jquery实现下拉跳转至商品详情页,上拉回到商品简介

    在做一个商城的项目时,做到商品详情页的时候需要实现这种下拉跳转到商品详情页加载许多图片,上拉回到商品简介的效果,并且需要用户在滑动时有一种费力的感觉.最初是通过iscroll插件实现的,但这个插件在使 ...

  3. gentoo use-flag 全局标识 大全 (官方搬运) 英文 适用funtoo

    连接 https://www.gentoo.org/support/use-flags/ 提示 ctrl+F 可在页面查找 搬运 Global USE flags FlagDescription 3d ...

  4. ulimit用法

    ulimit -a:显示当前所有的资源限制 -c:core文件大小 -f:设置创建文件的最大值 -n:设置内核可以同时打开的文件描述符的最大值 -p:设置管道缓冲区的最大值 -s:设置堆栈的最大值 - ...

  5. 2.Java集合-ConcurrentHashMap实现原理及源码分析

    一.为何用ConcurrentHashMap 在并发编程中使用HashMap可能会导致死循环,而使用线程安全的HashTable效率又低下. 线程不安全的HashMap 在多线程环境下,使用HashM ...

  6. kafka学习遗留问题

    1.ZK在kafka中的作用 2.Kafka支持优先级队列么 未完待续

  7. navicat for oracle 导入xlsx文件提示无法打开xlsx文件

    navicat for oracle 导入xlsx文件提示:无法打开xlsx文件 导入环境: navicat for oracle wps状态的xlsx文件 处理: 将wps状态的xlsx文件,打开方 ...

  8. Image Processing and Analysis_8_Edge Detection:Learning to Detect Natural Image Boundaries Using Local Brightness, Color, and Texture Cues ——2004

    此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...

  9. Auth2.0 例子【转载】

    本文转载自:https://www.cnblogs.com/flashsun/p/7424071.html 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的 ...

  10. nginx 缓存区太小导致后台Connection reset by peer 报错

    问题概述:图片bit 64生成数据流太大,导致小程序分享弹窗的二维码图片生成失败 后台报错: 排查: Client------>nginx------->h5------>nginx ...