Mysql-replace、insert语句性能记录
场景⼀
现存表:350万
新⼊更新字段数量:105万
更新表字段数:22个
**多⾏插⼊数量:每1000条插⼊⼀次
例⼦:replace  into test(a,b,c) value(a,b,c)
注意:sql中需要包含主键或者唯⼀索引**
性能:380条每秒
场景⼆
现存表:0
新⼊更新字段数量:105万
更新表字段数:22个
多⾏插⼊数量:每7000条插⼊⼀次
例⼦:insert  into test(a,b,c) value(a,b,c)
索引条件:**⽆索引**
性能:15000条每秒
场景三
现存表:0
新⼊更新字段数量:105万
更新表字段数:22个
多⾏插⼊数量:每**7000**条插⼊⼀次
例⼦:insert  into test(a,b,c) value(a,b,c)
索引条件:**唯⼀索引**
性能:12000条每秒
场景四
现存表:0
新⼊更新字段数量:105万
更新表字段数:22个
多⾏插⼊数量:每**70000**条插⼊⼀次
例⼦:insert  into test(a,b,c) value(a,b,c)
索引条件:唯⼀索引
性能:15000条每秒
场景五
现存表:0
新⼊更新字段数量:105万
更新表字段数:22个
多⾏插⼊数量:每**140000**条插⼊⼀次
例⼦:insert  into test(a,b,c) value(a,b,c)
索引条件:唯⼀索引
性能:14000条每秒
insert语句字段顺序
结论:
1、 insert带有唯⼀索引的表,瓶颈在15000条每秒
2、 replace慢很多,原因是需要先到该条记录
3、 mysql调节参数
a) max_allowed_packet :单连接最⼤字节数 (应⼤于真实传输数据包的2倍)
b) innodb_buffer_pool_size: 实际读写默认最⼤可以占⽤到1/2的缓冲池内存,并且增⼤该参数数值可以提升数据库的读写能⼒
c) 索引影响插⼊性能
d) 开启事务可以增加插⼊性能,如下
START TRANSACTION;
INSERT INTO insert_table (datetime, uid, content, type) VALUES (‘0’, ‘userid_0’, ‘content_0’, 0); INSERT INTO insert_table (datetime, uid, content, type) VALUES (‘1’, ‘userid_1’, ‘content_1’, 1);
COMMIT;