数据库记录的删除,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
随机推荐
- Mysql中基本语句优化的十个原则小结
- vue-router:嵌套路由的使用方法
- CentOS 6.5编译安装Nginx 1.10.2+MySQL 5.5.52+PHP5.5.38
- jQuery生成asp.net服务器控件的代码
- php中替换字符串中的空格为逗号','的方法
- PHP中把对象转换为关联数组代码分享
- 如何使用纯PHP实现定时器任务(Timer)
- 使用Python编写一个在Linux下实现截图分享的脚本的教程
- MySQL 客户端不输入用户名和密码直接连接数据库的2个方法
- nodejs批量修改文件编码格式
- 使用httpclient无需证书调用https的示例(java调用https)
- AS打造的复制粘贴等功能类
- 详解linux中fork、vfork、clone函数的区别
- 原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
- javascript强制点击广告的方法
- 带领大家学习javascript基础篇(一)之基本概念
- Redux 和 Mobx的选择问题:让你不再困惑!
- Tomcat 日志切割(logrotate)详细介绍
- linux实现除了某个文件或某个文件夹以外的全部删除
- PHP中HTTP方式下的Gzip压缩传输方法举偶