MySQL
a327369238
这个作者很懒,什么都没留下…
展开
-
高性能MySQL学习笔记(3) —— 数据库事务
数据库事务概述 数据库事务,简称事务,指的是访问并可能更新数据库中各种数据项的一个程序执行单元。事务通常由高级数据库操纵语言(DML)或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。 事务由事务开始(begin transaction)和事务结束(end transacti原创 2016-09-29 16:40:19 · 737 阅读 · 0 评论 -
高性能MySQL学习笔记(4) —— 事务隔离级别
事务隔离级别事务的ACID属性中的隔离性,如何实现呢?在SQL标准中定义了四种隔离级别。 但要注意,标准中定义的这四个级别,在实际上各个存储引擎的实现是不尽相同的,有些细节地方还是不一样的,学习的时候需要注意下。并发问题在说明事务隔离级别之前,先说说事务并发可能引发的问题。 1、更新丢失:一个事务的更新覆盖了另一个事务的更新。事务A:向银行卡存钱100元。事务B:向银行卡存钱200元。A和B同时原创 2016-10-13 16:40:45 · 974 阅读 · 0 评论 -
高性能MySQL学习笔记(1) —— MySQL架构
MySQL逻辑架构MySQL逻辑架构图如下: 这里分为三层: 1.连接层:连接与线程处理,这一层并不是MySQL独有,一般的基于C/S架构的都有类似组件,比如连接处理、授权认证、安全等。 2.SQL处理层:包括缓存查询、解析器、优化器,这一部分是MySQL核心功能,包括解析、优化SQL语句,查询缓存目录,内置函数(日期、时间、加密等函数)的实现 3.数据存储层:负责数据存储,存储引原创 2016-09-02 11:20:02 · 3100 阅读 · 0 评论 -
高性能MySQL学习笔记(2) —— 并发控制
MySQL 并发控制前一节已经说过了,MySQL是多线程应用,并且共享存储数据,很显然,当两个及以上线程对同一块数据进行写将会发生数据不一致等各种问题,比如,同时对一个表增加一条记录,后一个增加的记录可能会覆盖前一条,造成数据丢失。若仅仅是读不会发生错误,但是当读写一同,就有可能发生读错误,所以,对读也是需要必要的控制。 关于数据读写错误的会有哪几种情况,可以参考:事务隔离级别。 以上问题就需要原创 2016-09-29 11:44:38 · 807 阅读 · 0 评论 -
高性能MySQL学习笔记(5) —— MVCC
多版本控制 Multi-Version Concurrency Control,多版本控制,每次操作,copy一份所要改的数据作为副本,副本之间通过一个版本号字段区分,并将副本的版本号+1,如果是更新操作,数据在副本上修改完后,要更新时候查看原纪录的版本号是否是副本版本号-1,是,更新,否(说明有其他修改事务在这期间修改了数据,使其版本号更新了),失败,重新取数据重新更新;如果是读操作,则是根据隔原创 2016-10-17 11:22:13 · 4600 阅读 · 3 评论