数据库汇总和延伸
2018-11-20 03:21:10来源:博客园 阅读 ()
1 数据库分类
MySQL Oracle redis
2 MySQL 存储引擎有哪些
ENGINE=InnoDB 提供事务安全表,支持外键。
MyISAM
Memory数据存入内存中,如果内存出现异常或事重启关机,所有数据都会消失
3 事务
概念:逻辑上的一组sql语句,组成这组操作的sql语句,要么成功,要么失败。
3.1 事务四大特性ACID
原子性(Atomicity):事务是一个不可分割的单位,事务中的sql语句,要么全都发生,要么都不发生。
一致性(Consistency):事务发生前后,数据的完整性必须保持一致。
隔离性(Isolation):当并发访问数据库的时候,一个正在执行的事务在执行完前,对于其他的会话是不可见的,多个并发的事务之间的数据库相互隔离。
持久性(Durability):一个事务一旦被提交,数据库中的数据改变就是持久性的。如果出了错误也不能撤销。
3.2 事务隔离级别
对于同时运行的几个事务,当这些事务同时访问数据库时,如果不采取隔离措施就会导致各种并发问题。由此引出隔离级别的概念,总有4个,由低到高,可逐步解决脏读,不可重复读,幻读等问题。
Default spring:默认隔离级别,使用数据库默认的事务隔离级别
read_uncommitied:读未提交,一个会话可以读取其他事务未提交的更新结果,一旦这个事务被回滚了,导致这个会话的结果不正确了。
read_commited:读已提交,一个会话只能读取其他事务已经提交的更新结果,否则,等待。但是其他会话可以修改这个事务中被读取的记录,而不必等待事务结束。导致了,一个事务中两个相同的读取操作,其结果可能不同。
repeatable_read:重复读取,在数据读取出来后加锁,直到这个事务执行结束。
serlalizable:串行化,不管多少事务,只有执行完一个事务的所有子事务后,才可以执行另外一个事务里的所有子事务。
3.3 数据库设置的隔离级别read_commited
可以避免脏读,且具有较好的并发性能,可能出现的问题场景,可以使用悲观锁或乐观锁控制。
4 悲观锁和乐观锁,以及使用场景
悲观排他后,不能修改数据,即在数据被操作的时候,锁定数据不被访问。
乐观排他后,可以修改数据,即假设数据一般情况下不会造成冲突。
5 如何实现分页
使用sql语句关键字limit
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 拼多多三面惨败,问题在于java中间件、数据库与spring框架. 2020-06-04
- 基于数据库的代码自动生成工具,生成JavaBean、生成数据库文 2020-05-31
- Docker容器启动时初始化Mysql数据库 2020-05-27
- Mybatis显示修改数据库成功,数据库却没有修改 2020-05-22
- Java面试常被问到这道题:如何保证缓存与数据库的双写一致性 2020-05-16
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash