我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2p5qjwxvujms4
问题 1: 为什么 group by 和 order by 会使查询变慢?
答: group by 和 order by 操作通常需要创建一个临时表来处理查询的结果,所以如果查询结果很多的话会严重影响性能。
问题 2: delete、 truncate 和 drop 的区别?
答: Delete 命令用来删除表的全部或者一部分数据行,执行 delete 之后,用户需要提交(commmit)或者回滚(rollback) transaction 来执行删除或者撤销删除, delete 命令会触发这个表上所有的 delete 触发器。Truncate 删除表中的所有数据,这个操作不能回滚,也不会触发这个表上的触发器, truncate 比 delete更快,占用的空间更小。Drop 命令从数据库中删除表,所有的数据行,索引和权限也会被删除,所有的 DML 触发器也不会被触发,这个命令也不能回滚。
问题 3: 简述数据库的设计过程。
答: 数据库设计分为以下五个阶段:
需求分析:主要是准确收集用户信息需求和处理需求,并对收集的结果进行整理和分析,形成需求说明。概念结构设计:对用户需求进行综合、归纳、抽象,形成一个与具体的 DBMS 无关概念模型(一般为 ER 模型)。
逻辑结构设计:将概念结构设计的概念模型转化为某个特定的 DBMS 所支持的数据模型,建立数据库逻辑模式,并对其进行优化,同时为