首页
学习
活动
专区
圈层
工具
发布

MySQL性能测试之insert&delete【FunTester框架】

之前写过一个FunTester框架对Redis进行几种常见API进行性能测试的系列文章,今天如约开始写FunTester框架对MySQL常用功能的性能测试。...MySQL是我本地的服务,用的也是本机,本次测试只演示常见增删改查功能的性能测试,不测试MySQL服务性能,也不设置索引等参数。...insert 这个在工作中用到的不少,估计在造数据的时候用到会比较多。这里使用单条数据执行的方式。...脚本用例 /** * MySQL insert语句实践 */ class MysqlInsert extends SqlBase { static final String url =...delete 删除这个比较麻烦,因为这些数据删了就没了。如果采取如何对消息队列做性能测试这个方案,有点大材小用,我这里就用随机名称作为删除数据的依据,执行先insert再delete的测试方案。

70930
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据操纵:SELECT, INSERT, UPDATE, DELETE

    102 mysql> SELECT * FROM table LIMIT 5; # 检索前 5 个记录行 103 104 换句话说,LIMIT n 等价于 LIMIT 0,n。...然而,它在退出前会首先将所队列记录行保存到表中。这些期间,它将不再接收其它线程的任何新的 INSERT 命令。如果再此之后执行一个 INSERT DELAYED 命令,一个新处理器线程将会被创建。...在 MySQL 3.23 中,没有一个 WHERE 子句的 DELETE 将返回零作为受影响的记录数目。...438 439 当你删除所有记录行时,如果你真的希望知道多少条记录被删除,你可以使用一个这种形式的 DELETE 语句: 440 441 mysql> DELETE FROM table_name...某些老的 MySQL 版本中,你或许可以这样做,但是这是一个 Bug,现在已被修正了。 507 508 为了能够使用 REPLACE,你必须有对该表的 INSERT 和 DELETE 权限。

    3.1K20

    Mysql Innodb 锁机制 select * from table where?insert?delete?update?3个insert的死锁2个update的死锁3个以上delete的死

    意向共享锁(IS)  事务想要获得一张表中某几行的共享锁 意向排他锁(IX)事务想要获得一张表中某几行的排他锁 在行锁的实现上 mysql提供了三种的行锁的算法 分别是 Record Lock 记录锁...,对主键加锁, 加锁的数据行数会受到Mysql是否支持Index Condition PushDown而影响(Mysql 5.6支持ICP),加锁的数量可能远远大于满足条件的记录数量 这里需要加两次锁的原因是...这个共享锁在并发的情况下是会产生死锁的,比如有两个并发的insert都对要对同一条记录加共享锁,而此时这条记录又被其他事务加上了排它锁,排它锁的事务将这条记录删除后,两个并发的insert操作会发生死锁...to get lock; try restarting transaction delete操作仅是将主键列中对对应的记录delete flag设置为1,实际的删除延迟到purge中 delete删除时如果找到满足条件的记录...3个delete的死锁比较难以复现,我是利用如下脚本完成的 MY_DB="mysql -hxxx -Pxxx -uxxx -pxxx" while : do echo "use test;begin;

    2.1K80

    MySQL学习笔记汇总(三)——子查询、limit、表(insert,update,delete)

    select 语句中使用子查询 案例: 找出每个员工所在的部门名称,要求显示员工名和部门名。 二、limit的使用 limit是mysql特有的,其他数据库中没有。...length表示取几个 limit是sql语句最后执行的一个环节: 案例: 取出工资前5名的员工 思路:降序取前5个 找出工资排名在第4到第9名的员工 通用的标准分页sql...给表中插入数据: insert into t_student values(1,'jack','0',20200911,'1986-10-23'); insert into t_student values...set name='lisa',classno=20200811,birthday='1999-05-06' where no=2; 查看表中数据: 删除数据:delete 语法格式: delete...from 表名 where 条件; 删除表中数据: delete from t_student where no=1; delete from t_student where no=2; 当前表为一个空表

    2.2K20

    ClickHouse中使用INSERT语句和DELETE语句

    使用INSERT语句将数据插入数据表。...请注意,以上步骤中的表名、列名和值必须根据实际情况进行调整。在ClickHouse中,可以使用DELETE语句删除数据表中的部分数据。...DELETE语句的使用方法如下:DELETE FROM table_nameWHERE condition;其中,table_name是要删除数据的数据表名称,condition是一个条件,用于指定要删除哪些数据...要删除value列大于100的数据,可以执行以下DELETE语句:DELETE FROM my_tableWHERE value > 100;执行以上语句后,my_table中value大于100的数据将被删除...请注意,ClickHouse中的DELETE语句是一种标记(Mark)删除方式。实际上,被标记删除的数据仍然占用存储空间,但在查询时会被过滤掉。

    3.7K61

    Insert Delete GetRandom O(1)

    Insert Delete GetRandom O(1) Design a data structure that supports all following operations in average...O(1) time. insert(val): Inserts an item val to the set if not already present. remove(val): Removes...O(1),插入和删除可以考虑使用map,随机返回也要求O(1), 很明显需要用数组来做,所以就是使用一个map,插入的val作为key,value保存的是这个val在数组中的下标,然后删除元素的时候,总是把从数组最后一个元素删掉...,或者第一个元素删掉,这个随意,主要就是保证要删除的那个元素如果不是在最后一个就交换一下,这样每次从数组中删除某个元素的时间复杂度就是O(1)。...this.m[lastVal] = index } // 移除最后一个元素,实现O(1)删除 this.arr = this.arr[:len(this.arr)-1] delete

    47420

    Mybatis映射器之insert-update-delete

    insert元素的配置 元素 说明 备注 id 他和mapper的命名空间组合起来必须是唯一的,提供给mybatis调用 如果命名空间和id组合起来不唯一,mybatis将会抛异常 paramterType...,不能和keyColumn同时使用 联合主键可以用逗号隔开 useGeneratedKeys 这会令Myabatis使用JDBC的getGeneratedKeys方法来取出有数据库内部生成的主键,例如mysql...这里我们举两个例子,一个是使用mysql的自增功能,另一个是通过sql设置主键。 这个例子代码文件格式和Mybatis映射器之insert,完整代码参考这篇文章。...------------------/xxx/mybatis_mapper_insert_update_delete.xml mapper配置文件mybatis_mapper_insert_update_delete.xml...这两者和insert差不多,返回的都是影响的行数int型,这里就不做展示了。

    1.4K20

    MySQL DELETE 语句

    MySQL DELETE 语句 你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。 你可以在 mysql> 命令提示符或 PHP 脚本中执行该命令。...语法 以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法: DELETE FROM table_name [WHERE Clause] 如果没有指定 WHERE 子句,MySQL...---- 从命令行中删除数据 这里我们将在 SQL DELETE 命令中使用 WHERE 子句来删除 MySQL 数据表 kxdang_tbl 所选的数据。...实例 以下实例将删除 kxdang_tbl 表中 kxdang_id 为3 的记录: DELETE 语句: mysql> use RUNOOB; Database changed mysql> DELETE...该函数与 mysql> 命令符执行SQL命令的效果是一样的。 实例 以下PHP实例将删除 kxdang_tbl 表中 kxdang_id 为 3 的记录: MySQL DELETE 子句测试: <?

    3.7K20

    mysql insert into as_mysql insert into select使用方法详解

    mysql insert into select使用方法详解2017-11-22 15:47 我们先来看看mysql insert into select的语法规则。...DELAYED被忽略INSERT … SELECT。 该INSERT语句的目标表可能出现在查询部分的FROM子句中SELECT。但是,不能插入到表中并从子查询中的同一个表中进行选择。...在从同一个表中选择并插入时,MySQL创建一个内部临时表来存放来自这些表的行SELECT,然后将这些行插入到目标表中。...为确保二进制日志可用于重新创建原始表,MySQL不允许并发插入INSERT … SELECT语句。...由于这个问题,在MySQL 5.5.18中, INSERT…SELECT ON DUPLICATE KEY UPDATE和INSERT IGNORE… SELECT语句被标记为不安全的基于语句的复制。

    3.4K30

    MySQL优化INSERT的性能

    这种费时的操作其实是很有风险的,假设程序出了问题,想重跑操作那是一件痛苦的事情。因此,提高大数据量系统的MySQL insert效率是很有必要的。 1. 一条SQL语句插入多条数据。...常用的插入语句如: INSERT INTO `insert_table` (`datetime`, `uid`, `content`, `type`) VALUES ('0', 'userid_0',...COMMIT; 使用事务可以提高数据的插入效率,这是因为进行一个INSERT操作时,MySQL内部会建立一个事务,在事务内进行真正插入处理。...从测试结果可以看到,insert的效率大概有50倍的提高,这个一个很客观的数字。 注意事项: 1....事务需要控制大小,事务太大可能会影响执行的效率。MySQL有innodb_log_buffer_size配置项,超过这个值会日志会使用磁盘数据,这时,效率会有所下降。

    2.3K40
    领券