SQL语言中的ALTER和UPDATE,DROP和DELETE都有什么区别?
一、SQL语言中的ALTER和UPDATE,DROP和DELETE的区别
1、删除内容:drop操作会删除表结构、依赖的约束、索引以及触发器,并且会将依赖该表的所有存储过程和视图设置为invalid;而truncate和delete则是只会删除表中的数据,并不会删除表结构。因此如果该表以后不再需要的话可以使用drop,而如果后续还需要的话可以通过truncate或delete,因为这样可以不需要再重新建立表。
2、删除空间:delete操作并不会更改所占用的区的空间,高水位线不会发生改变。drop操作就会直接删除整个表空间,而执行truncate则是相对于先执行drop操作,然后在执行create操作,执行完成后会恢复初始的表空间。
3、语句类型:delete 语句是DML语句,这个操作会放到 rollback segement 中,事务提交之后才生效;并且可以执行对应的触发器。但truncate、drop是DDL操作,会包含implicit commit,因此不能回滚,也不能不触发触发器。
4、效率:从第二点的描述中可以推断truncate的执行效率要低于drop操作;而delete操作则是按照行记录一行一行的进行删除,因此其效率更低。
5、安全性:使用 drop 和 truncate会导致整个表中的数据都被删除,需格外注意。如果仅想删除部分数据可用delete,但是需要注意where子句得到的范围,会占用rollback segement。
延伸阅读:
二、为什么要持久化连接
这和 web 服务器的工作方式有关。web 服务器可以通过三种方法来利用 PHP 生成 web 页面。
名列前茅种方法是将 PHP 自以为 CGI“包装器”用作一个单独运行的语言解释器(CGI Wapper)。当以这种方法运行时,PHP 会为向 web 服务器的每个 PHP 页面请求创建并销毁 PHP 解释器的时候实例。由于其会随每个请求的结束而销毁,因此其获取的任何资源(例如指向 SQL 数据库服务器的链接)都会在销毁时关闭。在这种情况下,不会从使用持久连接中获得任何好处——因为根本不会持久。
第二,也是最流行的方法是把 PHP 用作多进程 web 服务器的一个模块,这种方法目前只适用于 Apache。多进程的服务器通常有一个父进程和一组子进程协调运行,子进程负责提供网页的工作。每当接收达到客户端提出请求时,该请求会传递给尚未给其它客户端提供服务的某个子进程。这也就是说当相同的客户端第二次向服务端发出请求时,它将有可能由与名列前茅次不同的某个子进程提供服务。在开启了一个持久连接后,所有请求 SQL 服务的后继页面都能够重用与 SQL 服务器建立的相同连接。
最后一种方法是将 PHP 用作多线程 web 服务器的插件。目前 PHP 支持 WSAPI 和 NSAPI(在 Windows 上),允许 PHP 作为 Netscape FastTrack(iPlanet)、Microsoft 的 Internet Information Server (IIS) 和 O’Reilly 的 WebSite Pro 等多线程服务器的插件使用。该行为与前面描述的多过程模型相同。

猜你喜欢LIKE
相关推荐HOT
更多>>
dbvisualizer怎么导出整个数据库?
一、dbvisualizer导出整个数据库的步骤1、连接要导出的数据库打开DBVisualizer,连接要导出的数据库,通过导航器选择要导出的数据库对象,如表...详情>>
2023-10-15 19:00:46
不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行?
一、不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行,这是...详情>>
2023-10-15 18:20:59
微博feed系统的推模式和拉模式的架构是怎样的?
一、微博feed系统的推模式架构1、发布服务负责生成用户的消息,将消息推送到数据发布中心。2、推送服务在接收到新消息后,根据消息的类型和内容...详情>>
2023-10-15 16:40:01
Mycat分表分库的原理是什么?
一、Mycat分表分库的原理1、数据分片(Sharding)Mycat将数据按照某种规则(如基于哈希、范围、一致性哈希等)进行分片。每个分片包含数据的一...详情>>
2023-10-15 14:30:54热门推荐
PSC文件是什么文件,要用什么软件打开?
沸定制开发app有哪些优势?
热怎么向VFP数据表中一次加入多条记录?
热怎么分析判断一个网站的后台数据库管理系统是什么?
新access数据库中的round函数是什么意思?
交易所基于内存的撮合一般使用什么数据库?
PostgreSQL为什么删除了数据库以后里面的表还在?
删除SQL server2012出现重新启动计算机――失败,是什么原因?
既然MySQL有事物隔离性,那为什么还会产生脏读?
dbvisualizer怎么导出整个数据库?
不能在具有少数索引“CNO”的对象“dbo.STUDENT”中插入重复键的行?
redis和mongoDB相比分别有什么优缺点?
怎样建立一个数据库,然后利用C语言调用数据库的数据来进行运算得到运算结果?
微博feed系统的推模式和拉模式的架构是怎样的?
技术干货






