zoukankan      html  css  js  c++  java
  • 数据库+程序优化

      总结自己项目中遇到的数据库优化以及程序优化方法

    ---------------------2015-10-16------同步表(timestamp时间戳)---------------------------------

    运用timestamp(时间戳)同步表.

    方法:在同步表中添加timestamp类型的字段

    timestamp时间戳: 每个数据库都有一个计数器,当对数据库中包含 timestamp 列的表执行插入或更新操作时,该计数器值就会增加。 该计数器是数据库时间戳。 这可以跟踪数据库内的相对时间,而不是时钟相关联的实际时间。 一个表只能有一个 timestamp 列。 每次修改或插入包含 timestamp 列的行时,就会在 timestamp 列中插入增量数据库时间戳值。 这一属性使 timestamp 列不适合作为键使用,尤其是不能作为主键使用。 对行的任何更新都会更改 timestamp 值,从而更改键值。 如果该列属于主键,那么旧的键值将无效,进而引用该旧值的外键也将不再有效。 如果该表在动态游标中引用,则所有更新均会更改游标中行的位置。 如果该列属于索引键,则对数据行的所有更新还将导致索引更新。

    存储过程如下:

    DECLARE  @max_rowstate bigint
                    SET @max_rowstate =0
    SELECT @max_rowstate=max(rowstate) from channel.dbo.[butie] WITH (NOLOCK)
    DELETE from channel.dbo.[butie] where id in 
    (SELECT ID FROM CONNECT_TUTU_R.tutu.dbo.[butie] WITH (NOLOCK) where rowstate>@max_rowstate) 
    ---------------------------------
    INSERT INTO channel.dbo.[butie] (id, ..., rowstate)
    SELECT id, ..., rowstate
    FROM CONNECT_TUTU_R.tutu.dbo.[butie] WITH (NOLOCK) where rowstate>@max_rowstate
  • 相关阅读:
    uvm_reg_map——寄存器模型(八)
    uvm_reg_block——寄存器模型(七)
    mysql_secure_installation 安全安装(用于生产环境设置)
    一键安装nginx-1.12.2
    nginx优化之隐藏版本号
    shell script 之六:循环 while
    shell script 之五:循环控制 for
    shell script 之四:流程控制 if 分支语句
    shell script 之三:打印输出 echo printf
    shell script 之一:变量和赋值
  • 原文地址:https://www.cnblogs.com/ws-zpp/p/4810985.html
Copyright © 2011-2022 走看看