数据库记录的删除,delete好还是update好?
个人认为还是使用Update比较好。
经过一些测试,发现几乎所有数据库使用delete语句后,数据库文件大小并没有变小,以致数据库的每次插入操作,都会使数据库体积变大。
与其删不掉,还是让他留着吧。发现使用Update的时候,只要新的数据不比原来的大,数据库体积就不会增大(文件存到数据库很容易看出效果)。
所以个人建议使用Update方式标记删除记录,添加新记录的时候如果存在标记为删除的记录,则更新该条记录为新记录。添加新记录时的判断也比较简单:
rs.Open "select * from tableName where deleted=1 order by ID asc"
If rs.EOF Then rs.AddNew
rs(1).Value="...";
'.....
rs.Update
我们需要添加新数据时,先查询有没有标记为删除的数据,如果没有(rs.EOF)则插入记录(addNew),否则将新数据覆盖掉第一条查询到的记录。
相关推荐
-
数据库记录的删除,delete好还是update好?
个人认为还是使用Update比较好. 经过一些测试,发现几乎所有数据库使用delete语句后,数据库文件大小并没有变小,以致数据库的每次插入操作,都会使数据库体积变大. 与其删不掉,还是让他留着吧.发现使用Update的时候,只要新的数据不比原来的大,数据库体积就不会增大(文件存到数据库很容易看出效果). 所以个人建议使用Update方式标记删除记录,添加新记录的时候如果存在标记为删除的记录,则更新该条记录为新记录.添加新记录时的判断也比较简单: 复制代码 代码如下: rs.Open "sele
-
Linux下定时切割Mongodb数据库日志并删除指定天数前的日志记录
System.out和System.err都被打印到catalina.out.catalina.out不会rotate.一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响. 1.可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息. [root@localhost conf]# pwd /usr/local/tomcat/conf [root@localhost conf]# cp logging.pr
-
详解.NET6下的Modbus通讯和数据库记录
所用的包: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net6.0-windows</TargetFramework> <Nullable>enable</Nullable> <UseWindow
-
使用数字签名实现数据库记录防篡改(Java实现)
本文大纲 一.提出问题 二.数字签名 三.实现步骤 四.参考代码 五.后记 六.参考资料 一.提出问题 最近在做一个项目,需要对一个现成的产品的数据库进行操作,增加额外的功能.为此,需要对该产品对数据库有什么操作进行研究(至于怎么监控一个产品的操作会引发什么数据库操作,以后会详细解说).本来已经对数据库的操作了如指掌的,无意中发现数据库表里的每条记录都会有这样一个字段: 这感觉不妙了,字段名叫signature,顾名思义,就是签名的意思呀.难道数据库表中的每条记录都会有签名?也就是说如果我不能正
-
Mybatis如何使用动态语句实现批量删除(delete结合foreach)
目录 下面我将演示如何使用动态语句批量删除数据库数据 下面是项目的结构 1.IEmpDAO.java为接口提供批量删除数据方法 2.EmpDAOImpl.java为接口的实现类 3.MybatisSqlSessionFactory.java 4.Emp.java为实体类 5.Emp.xml为映射文件 6.mybatis_cfg.xml为mybatis主配置文件 7.pom.xml为maven引入依赖的文件 8.Test.java为测试类 下面我将演示如何使用动态语句批量删除数据库数据 本人在数据
-
MongoDB实现创建删除数据库、创建删除表(集合 )、数据增删改查
一. 数据库使用 开启 mongodb 服务:要管理数据库,必须先开启服务,开启服务使用 mongod --dbpath c:\mongodb 管理 mongodb 数据库:(一定要在新的 cmd 中输入) mongo 清屏: cls 查看所有数据库列表 show dbs 二. 创建数据库 使用数据库.创建数据库 use student 如果真的想把这个数据库创建成功,那么必须插入一个数据.数据库中不能直接插入数据,只能往集合(collections)中插入数据.不需要专门创建集合,只需要写点语
-
asp中通过getrows实现数据库记录分页的一段代码
<%@ Language = VBSCRIPT %> <% Option Explicit %> <% rem 在asp中通过getrows实现数据库记录分页的一段代码 Dim iStart, iOffset iStart = Request("Start") iOffset = Request("Offset") if Not IsNumeric(iStart) or Len(iStart) = 0 then iStart = 0 e
-
在asp中通过getrows实现数据库记录分页的一段代码
复制代码 代码如下: <%@ Language = VBSCRIPT %> <% Option Explicit %> <% rem 在asp中通过getrows实现数据库记录分页的一段代码 Dim iStart, iOffset iStart = Request("Start") iOffset = Request("Offset") if Not IsNumeric(iStart) or Len(iStart
-
分页显示Oracle数据库记录的类之一
<?php /********************************************* TOracleViewPagev 2.0 日期:2000-9-23 分页显示Oracle数据库记录的类 更新日期:2000-10-19 增加显示TopRecord的功能,允许第一页显示的记录数与其它页不同. 作者:sharetop email:ycshowtop@21cn.com ***********************************************/ class T
-
Oracle数据库"记录被另一个用户锁住"解决方法(推荐)
1.先来看看为什么会出锁住: 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性. 加锁是实现数据库并发控制的一个非常重要的技术.当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁.加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作. 在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X
随机推荐
- java实现五子棋小游戏
- Zabbix监控交换机设置方法
- 轻松掌握Java适配器模式
- IOS 改变键盘颜色代码
- python实现自动登录人人网并访问最近来访者实例
- 详解python之配置日志的几种方式
- javascript判断复选框是否选中的方法
- Go语言中slice的用法实例分析
- CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
- SQL SERVER 利用存储过程查看角色和用户信息的写法
- 用cookies实现的可记忆的样式切换效果代码下载
- 微信小程序 自动登陆PHP源码实例(源码下载)
- Android拍照上传功能示例代码
- 入侵之中杀防火墙进程的代码
- PHP中几个常用的魔术常量
- string,CString,char*之间的转化
- 路由器设置新手上路---路由器设置结束
- lele360为您200M提供免费HTML空间服务
- 利用python实现微信头像加红色数字功能
- 简单谈一谈Java中的Unsafe类