• 数据库+程序优化


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

    ---------------------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
  • 相关阅读:
    hadoop02---高可用网站架构
    springboot-vue项目前台2
    Java Serializable(序列化)
    JAVA 正则表达式、汉字正则、 java正则代码
    MyEclipse导入Maven项目
    JAVA学习:maven开发环境快速搭建
    删除
    关于java程序打包为EXE的若干问题
    ServletContext与ServletConfig的详解及区别
    在CSS中定义a:link、a:visited、a:hover、a:active顺序
  • 原文地址:https://www.cnblogs.com/ws-zpp/p/4810985.html
Copyright © 2020-2023  润新知