开发者社区> 问答> 正文

在OceanBase数据库中对写入性能影响因素有哪些?有哪些可以提升性能的推荐?

在OceanBase数据库中对写入性能影响因素有哪些?有哪些可以提升性能的推荐?OceanBase数据库中的URL开启了rewriteBatched参数,但是写入性能没有提升只达到了2000条/s(数据库是OB_MYSQL 3.2.4,驱动是使用的1.1.10),我在OB_MYSQL 3.1.4中添加了这个rewriteBatched参数性能是有达到9000条/s ,是我的驱动版本和服务版本不兼容吗?

展开
收起
曹凯1211 2023-08-16 20:57:50 195 0
来自:OceanBase
4 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    以下是一些常见的因素和一些建议来提升性能:

    硬件配置:数据库服务器的硬件配置对写入性能有直接影响。确保服务器具有足够的CPU、内存和磁盘性能,以满足写入操作的需求。

    网络延迟:如果数据库服务器与应用程序之间存在高网络延迟,会对写入性能产生影响。尽量减少网络延迟,可以考虑将应用程序和数据库部署在相同的局域网或使用高速网络连接。

    索引设计:良好的索引设计可以提高写入性能。确保表的主键和索引的选择是合理的,并避免过多或不必要的索引。

    批量插入:使用批量插入操作可以显著提高写入性能。将多个插入操作组合成一个批量操作,减少了网络通信和数据库操作的开销。

    2023-08-18 22:10:17
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,你的描述只提到版本,并没有说明你的部署架构是怎么样,用了多少台机器以及机器的配置,分了多少个zone,每个zone多少个unit。

    以上这些配置都会影响写入的性能,还有一些索引相关(影响性能的关键)的可以参考下:

    • OB中的表默认为单表(只分布在一个节点上),需要使用分区表的语法,指定分区键与分区数,才能成为一张分布式表
    • OB默认的索引是本地索引,需要指定Global关键字才是全局索引
    • OB的全局索引默认也是一个单表(只有一个分区,只分布在一个节点上),需要手动指定分区数才是一个真正的分布式索引
    • UNIT_NUM=1的情况下,即使是分区表,也都在同一台机器上,所以测试机器数要是多台的话,确保UNIT_NUM>=2
    • OB全局索引如果在建表语句中直接指定,似乎不支持指定分区数,因此全局索引需要使用单独的CREATE INDEX语句来创建
    • OB分区表的AUTO_INCREMENT属性似乎有严重的性能问题,设置了之后,性能很低,要去掉该属性,并且将sysbench的auto_inc设为off,由sysbench来生成主键值
    2023-08-17 15:09:09
    赞同 展开评论 打赏
  • 在OceanBase数据库中,写入性能受多种因素影响,包括硬件资源、数据库配置、表结构、索引策略以及应用程序的SQL语句等。以下是一些可能影响写入性能的因素及相应的优化建议:

    1. 硬件资源:检查服务器的CPU、内存、磁盘IO等硬件资源是否充足。如果资源不足,可能导致写入性能下降。可以通过升级硬件或调整资源分配来解决这个问题。

    2. 数据库配置:检查数据库的配置参数,如缓冲区大小、日志缓冲区大小、并发数等。这些参数会影响写入性能。可以根据实际情况调整这些参数以提高性能。

    3. 表结构:表的大小、行数、列数等都会影响写入性能。如果表太大,可能导致写入性能下降。可以考虑分区表、建立索引等方式来优化表结构。

    4. 索引策略:合适的索引策略可以显著提高写入性能。可以根据实际需求创建适当的索引,并在应用程序中合理使用索引。

    5. 应用程序的SQL语句:应用程序的SQL语句也会影响写入性能。例如,INSERT INTO SELECT语句可能会导致性能下降。可以考虑使用其他写入方式,如INSERT IGNORE INTO语句。

    关于您的第二个问题,可能是由于驱动版本和服务版本之间的不兼容导致的。建议您尝试更新驱动版本或联系OceanBase官方获取更多支持信息。
    2ad43e1b4d33fb464572cb4a64bb0309_win-configure-data-source-1.png

    f726343720a1d1ad8e6720505c115458_Win-DSN1.png
    be1ebe49e4a3acfaad987be5774fefd9_Win-DSN4.png

    2023-08-17 08:48:52
    赞同 展开评论 打赏
  • 驱动是使用的什么版本的驱动哪 模式使用的是ora 还是mysql——此回答整理自钉群[社区]技术答疑群OceanBase

    2023-08-16 21:01:57
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载