MySQLclient使用笔记

使用libmysqlclient库时,遇到的问题和性能分析总结

需要8.0.16之后版本才支持异步

一、测试情况
  1. 测试环境

    虚拟机:Ubuntu16.04

    CPU:4核

    内存:8G

    数据库表数据量:3万条

    libmysqlclient:8.0.25

  2. 测试量

    执行1万次,比如idwei 1 ~ 30000, 则将id=1 ~ 10000的数据进行更新或查询

  3. 测试写入结论

    对比mysqlclient异步操作、mysqlclient同步操作、odbc方式

    1.InnoDB引擎:

    MySQLclient异步:681ms

    MySQLclient同步:1778ms

    ODBC:1681ms

    2.MySIAM引擎:

    MySQLclient异步:4633ms

    MySQLclient同步:5202ms

    ODBC:5267ms

    3.InnoDB引擎:每次commit

    MySQLclient异步:3367ms

    MySQLclient同步:8308ms

    ODBC:2365ms

  4. 读取测试结论

    1. mysqlclient异步操作(1线程、4连接):200ms
二、使用时的坑
  1. 写入时问题和解决方案

    1. 连接1写入数据,连接2读取,当还没完全写入,连接2就读新写入的数据,则一直读取不到,如果写入等待一会再去读就能取到
    2. 连接1写入,连接1立马读取,也能读取到
    3. 改为自动提交(mysql_autocommit(mysql,true)),则连接1写入数据,连接2立马读取,也能读取到
    4. 连接1写入,连接2执行mysql_reload接口或者操作sql语句:FLUSH PRIVILEGES 之后连接2也能读取到
相关推荐
Include everything1 小时前
Rust学习笔记(三)|所有权机制 Ownership
笔记·学习·rust
livemetee2 小时前
Flink2.0学习笔记:Flink服务器搭建与flink作业提交
大数据·笔记·学习·flink
INS_KF3 小时前
【C++知识杂记2】free和delete区别
c++·笔记·学习
Easocen4 小时前
Mybatis学习笔记(五)
笔记·学习·mybatis
丑小鸭是白天鹅5 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
十一10247 小时前
FX10/20 (CYUSB401X)开发笔记5 固件架构
笔记
FakeOccupational7 小时前
【电路笔记 通信】AXI4-Lite协议 FPGA实现 & Valid-Ready Handshake 握手协议
笔记·fpga开发
奶黄小甜包8 小时前
C语言零基础第18讲:自定义类型—结构体
c语言·数据结构·笔记·学习
rannn_11110 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
草莓熊Lotso11 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他