数据库记录的删除,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
随机推荐
- 完美解决MSSQL"以前的某个程序安装已在安装计算机上创建挂起的文件操作"
- 理解Java访问权限控制
- Java自定义异常_动力节点Java学院整理
- jsp跳转getRequestDispatcher()和sendRedirect()的区别
- JS逆序遍历实现代码
- JavaScript将字符串转换成字符编码列表的方法
- 将DLL放入到资源中,运行时自动加载的小例子
- 同一页面多个商品倒计时JS 基于面向对象的javascript
- 解决微信返回上一页,页面中的AJAX的请求,对Get请求无效的问题
- linux c 获取本机公网IP的实现方法
- 运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
- 诺顿防病毒软件 Norton Antivirus v2007+KeyGen下载
- jQuery的Read()方法代替原生JS详解
- JavaScript常用脚本汇总(三)
- javascript 焦点的两个问题
- vue移动端UI框架实现QQ侧边菜单组件
- 深入理解JS的事件绑定、事件流模型
- JS实现随机生成10个手机号的方法示例
- java中的tostring方法的具体用法
- koa2 用户注册、登录校验与加盐加密的实现方法