• 8.2.2 Optimizing DML Statements 优化DML 语句:


    8.2.2 Optimizing DML Statements 优化DML 语句:

    8.2.2.1 Speed of INSERT Statements
    8.2.2.2 Speed of UPDATE Statements
    8.2.2.3 Speed of DELETE Statements

    这个章节显示 如何加速DML操作,INSERT,UPDATE和DELETE。

    传统的OLTP 应用和现代的web应用通常是一些小的DML操作,

    并发值至关重要的。数据分析和报表应用典型的运行DML操作一次影响很多记录,

    主要的考虑是I/O 写大量的数据和保持索引的更新。对于插入和更新大量的数据

    ( 比如ETL, for “extract-transform-load”),

    有时候你使用其他的SQL语句或者外部命令,模拟INSERT,UPDATE和DELETE 语句。

    8.2.2.1 Speed of INSERT Statements

    要优化插入速度,将小的操作合成一个小的大操作。在理想状况下,

    你再一个单独的连接上, 一次发送很多数据, delay所有的索引更新和一致性检查直到结束。

    插入一行需要的时间是有下面的因素决定, number 表示相应的比例:

    Connecting: (3)

    Sending query to server: (2)

    Parsing query: (2)

    Inserting row: (1 × size of row)

    Inserting indexes: (1 × number of indexes)

    Closing: (1)

    这个不考虑打开表的初始开销, 为每一个并发查询运行一次。

    表的大小降低了索引的插入通过log N, 假设B树索引:

    你可以使用以下的方法来加快插入:

    如果你在同一时间插入多行从同一个客户端,使用INSERT 语句带多个VALUES 列表

    来一次插入多行。

    这个认为是快速的(快很多倍在有些情况下) 相比使用单独的行插入语句。

    如果你增加数据到一个非空的表,你可以调优bulk_insert_buffer_size 变量来让数据插入变的更快。

    当从文本文件加载表, 使用LOAD DATA 文件, 这个通常是20倍速度的相比使用INSERT 语句。

    利用列有默认值的事实,只有当插入的值于默认的值不同的时候才插入值,

    这个降低了SQL的解析,来改善性能。

  • 相关阅读:
    Linux中OCI开发库的配置
    makefile中的gcc -o $@ $^是什么意思?
    【转】gcc中的-w -W和-Wall选项
    【转】Linux查看系统是32位还是64位方法总结
    【转】gcc命令中参数c和o混合使用的详解
    Python2.7设置在shell脚本中自动补全功能的方法
    Python3设置在shell脚本中自动补全功能的方法
    Pyqt图标下载网站
    如何使QLineEdit禁止编辑
    python偏函数的运用
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351275.html
Copyright © 2020-2023  润新知