数据库常见问题整理
来源:互联网 发布:vscode c 函数插件 编辑:程序博客网 时间:2024/06/07 00:36
1.数据库回滚(rollback)和撤销(undo)的区别
答:回滚:即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚回到事务开始时的状态。
撤销:恢复程序要在不影响其他事务运行的情况下,强行回滚该事务,即撤销该事务已经做出的任何对数据库的修改,使得该事务好像根本没有启动一样。
二者主要区别在于事务执行的状态,回滚是在事务未全部完成即在事务中发生的,撤销是在该事务已经执行完成后发生的,不过二者都是为解决事务故障而存在的一种安全机制。
2.数据库事务
答:database transaction,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。
原子性:atomic,事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性:consistent,
隔离性:insulation,由并发事务所作的修改必须与其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。
持久性:duration,
3.数据库中如何确保添加时某列数据不会重复
为该列添加索引或设置主键。
4.
不要使用count(列名)或count(常量)来替代count(*);count(*)会统计值为null的行,而count(列名)不会统计此列为null值得行。
5.
使用isnull()来判断是否为null值。注意:null与任何值得直接比较都为null。
6.分层领域模型规约
POJO(plain ordinary java object):在本手册中,POJO专指只有setter/getter/toString的简单类。
DO(Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
DTO(Data Transfer Object):数据传输对象,Service和Manager向外传输的对象。
BO(Business Object):业务对象,可以由Service层输出的封装业务逻辑的对象。
Query:数据查询对象,各层接收上层的查询请求。
VO(View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
ORM(object relation mapping):对象关系映射。
7.如果明确知道只有一条结果返回,limit 1能够提高效率
select * from user where name = ?可优化为:
select * from user where name = ? limit 1原因:你知道只有一条结果,但数据库并不知道,明确告诉它,让它主动停止游标移动
8.把计算放到业务层而不是数据库层,除了节省数据的CPU,还有意想不到的查询缓存优化效果
select * from order where date <= CURDATE()这不是一个好的SQL实践,应该优化为:
$curDate = date('Y-m-d');$res = mysql_query( 'select * from order where date < = $curDate');原因:
释放了数据库的CPU;
多次调用,传入的SQL相同,才可以利用查询缓存
- 数据库常见问题整理
- 常见问题整理
- 数据库常见问题
- 数据库常见问题
- 数据库常见问题
- JavaScript常见问题整理 (1)
- JavaScript常见问题整理(2)
- AIX常见问题整理
- AIX常见问题整理
- [转载]AIX 常见问题整理
- Google Adsense常见问题整理
- Google Adsense常见问题整理
- aix常见问题整理
- Silverlight常见问题整理
- Windows2008常见问题整理
- Dreamweaver常见问题整理
- VC++常见问题的整理
- web标准常见问题整理
- 使用内核模块添加系统调用
- opencv实战,钢板焊接点寻找1
- set bitmap to static control
- 彻头彻尾理解单例模式及其在多线程环境中的应用
- 硬盘写到一半时断电,文件系统里会发什么?
- 数据库常见问题整理
- 信息系统项目管理知识--项目立项管理
- vlan 二三层转发
- mybatis数据库查询
- Rxjava Observeable运行线程说明
- python 普通方法、静态方法和类方法有什么区别?
- 安装Windows,ubuntu
- JavaScript学习笔记33-关联数组
- 第六章 抽象