# perfectdb **Repository Path**: tanqingru/perfectdb ## Basic Information - **Project Name**: perfectdb - **Description**: 这是一个用来测试数据库和程序,目前只做了mysql部分特殊场景; - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-30 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 完成的测试场景 ### 热点帐户(单行热点) module=hotaccount (default) 用户帐户表和只有一行的总帐表互相转帐,测试内容 - 测试性能; - 通过求总和测试操作过程中、有无事物异常; ### 小表写热点测试 module=asyncpay 用较小的用户帐户表(建议2000以下)和流水表做操作,异步算总帐。 - 测试性能; - 测试起始与结束总帐是否一致; ### 大表写热点测试 module=asyncpay 用较大的用户帐户表(建议100w以上)和流水表做操作,异步算总帐。 - 测试性能; - 测试起始与结束总帐是否一致; ## 计划做未完成的场景 ### 各种SQL测试 - exist, in 测试 - @ 变量测试 - 其他基础SQL测试 - for update测试 - 其他。。。。。。 ### 高可用测试 - RPO - RTO ### 功能、性能测试 - 小表热点,读多写少 - 大表后管测试; - 优化器稳定性测试 - 跑批场景:批量写入,批量删除,再批量写入,数据分布,直方图发生变化后。统计信息是否准确。 - 常用的online-DDL测试 - 是否有分片键影响测试 - 内存是否能正常回收测试: 经过基准跑完后,跑几个大SQL,跑几个SPARK抽数。然后断开边接,观察前后内存变化。 - 完整的事物测试。 ## 高并发下,个别事物持锁时间长测试。 - 实时贷款: - 批量贷款: - 异步记帐:记流水,异步汇总帐 - 资金划转 ## 功能 - 支持直接调用shell压测 - 支持同置场景测试 ## 表设计 - 主帐户对公表: com_account (热点帐户表)1对多,资金划转 - 用户帐户表: user_account - 支付流水表: user_payment ## 操作示例 ~~~ [root@localhost perfectdb]# ./perfectdb -time=20s -thread=30 测试前的总和: 746626700 Threads: 30 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 Time Count: 20.052751865s Count: 8046 TPS: 402 测试后的总和: 746626700 ~~~ ~~~ [root@localhost perfectdb]# ./perfectdb -module="asyncpay" -time=15s -thread=30 测试前的总和: 746626700 Threads: 30 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 测试中的总和: 746626700 Time Count: 15.195861227s Count: 9934 TPS: 662 测试后的总和: 746626700 ~~~