开发者社区 > 数据库 > 数据仓库 > 正文

ADB批量insert的时候有没有禁用索引,不记录日志等这些操作提高我插入的性能?有的话,提供一下相

ADB批量insert的时候有没有禁用索引,不记录日志等这些操作提高我插入的性能?有的话,提供一下相关文档

展开
收起
真的很搞笑 2023-05-17 15:00:50 184 0
3 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    阿里云ADB可以通过以下几种方式来提高插入性能:

    1. 关闭日志记录

    可以使用以下命令关闭ADB日志记录:

    set nocount on;
    set session characteristics as transaction read write;
    set session characteristics as commit off;
    set session characteristics as dml_batch_size 1000000;
    insert /*+NOLOGGING*/ into test values ('1', 'value_1');
    commit;
    
    1. 禁用索引

    可以使用以下命令禁用索引:

    set nocount on;
    set session characteristics as transaction read write;
    set session characteristics as commit off;
    set session characteristics as dml_batch_size 1000000;
    alter table test disable constraint test_pk;
    insert into test values ('1', 'value_1');
    commit;
    alter table test enable constraint test_pk;
    
    1. 使用批量插入命令

    可以使用以下命令进行批量插入:

    set nocount on;
    set session characteristics as transaction read write;
    set session characteristics as commit off;
    set session characteristics as dml_batch_size 1000000;
    insert /*+APPEND_VALUES*/ into test values ('1', 'value_1');
    insert /*+APPEND_VALUES*/ into test values ('2', 'value_2');
    commit;
    

    以上命令中,APPEND_VALUES提示执行追加写入操作,可以提高批量插入性能。

    参考文档:阿里云ADB官方文档 https://help.aliyun.com/document_detail/95854.html

    2023-05-20 07:59:29
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    是的,你可以禁用索引、不记录日志等操作来提高ADB批量插入的性能。具体操作如下:

    1.禁用索引

    在进行大量数据插入时,如果表中存在较多的索引,这些索引将会降低插入的性能。因为每次插入数据时都需要更新索引。因此,在插入数据之前,禁用索引可以提高插入的速度。禁用索引的命令如下:

    ALTER TABLE table_name DISABLE KEYS; 禁用索引之后,插入完数据后,别忘了要重新启用索引:

    ALTER TABLE table_name ENABLE KEYS; 注意:禁用索引会影响查询的性能,因此只有在大量插入数据时才需要禁用索引。

    2.不记录日志

    在进行大量数据插入时,日志记录也会对性能造成影响。因此,关闭日志记录可以提高插入的速度。关闭日志记录的命令如下:

    SET SQL_LOG_BIN=0; 如需重新启用日志记录,则可以执行以下命令:

    SET SQL_LOG_BIN=1; 注意:关闭日志记录可能会影响数据的完整性和一致性,因此请谨慎使用。

    参考文档:

    1.《阿里云文档-MySQL性能优化》:https://help.aliyun.com/document_detail/120567.html

    2.《MySQL官方文档-13.2.6 LOAD DATA INFILE Syntax》:https://dev.mysql.com/doc/refman/8.0/en/load-data.html

    2023-05-19 19:02:58
    赞同 展开评论 打赏
  • 目前没有。,此回答整理自钉群“云数据仓库ADB-开发者群”

    2023-05-17 15:10:52
    赞同 展开评论 打赏

相关产品

  • 云原生数据仓库 AnalyticDB PostgreSQL版
  • 热门讨论

    热门文章

    相关电子书

    更多
    消电行业数据中台解决方案白皮书 立即下载
    (终极版)2020阿里云金融数据中台报告 立即下载
    2020年中国乳制品行业数据中台研究报告 立即下载