Mysql系统知识梳理
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
6 数据库三大范式
1NF:对属性的原子性约束,要求属性具有原子性,不可再分解。
2NF:对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性。
3NF:对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
7 Mysql有哪些索引:fulltext、hash、btree、rtree
8 什么时候该建立索引
1)表的主键、外键必须有索引
2)数据量超过300的表应该有索引
3)经常与其他表进行连接的表,在连接字段上应该建立索引
4)经常出现在where子句中的字段,特别是大表的字段,应该建立索引
9 sql关键字执行顺序:select->from->where->group by->having->order by
10 explain包含哪些列
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
Mysql系统知识梳理的更多相关文章
- MySQL 基础知识梳理
MySQL 的安装方式有多种,但是对于不同场景,会有最适合该场景的 MySQL 安装方式,下面就介绍一下 MySQL 常见的安装方法,包括 rpm 安装,yum 安装,通用二进制安装以及源码编译安装, ...
- MySQL 基础知识梳理学习(一)----系统数据库
information_schema 此数据库是MySQL数据库自带的,主要存储数据库的元数据,保存了关于MySQL服务器维护的所有其他数据库的信息,如数据库名.数据库表.表列的数据类型及访问权限等. ...
- MySQL 基础知识梳理学习(五)----详解MySQL两次写的设计及实现
一 . 两次写提出的背景或要解决的问题 两次写(InnoDB Double Write)是Innodb中很独特的一个功能点.因为Innodb中的日志是逻辑的,所谓逻辑就是比如插入一条记录时,它可能会在 ...
- MySQL 基础知识梳理学习(四)----GTID
在日常运维中,GTID带来的最方便的作用就是搭建和维护主从复制.GTID的主从模式代替了MySQL早期版本中利用二进制日志文件的名称和日志位置的做法,使用GTID使操作和维护都变得更加简洁和可高. 1 ...
- MySQL 基础知识梳理学习(七)----sync_binlog
一般在生产环境中,很少用MySQL单实例来支撑业务,大部分的MySQL应用都是采用搭建集群的方法.搭建MySQL集群,可以进行数据库层面的读写分离.负载均衡或数据备份.基于MySQL原生的Replic ...
- MySQL 基础知识梳理学习(五)----半同步复制
1.半同步复制的特征 (1)从库会在连接到主库时告诉主库,它是不是配置了半同步. (2)如果半同步复制在主库端是开启了的,并且至少有一个半同步复制的从节点,那么此时主库的事务线程在提交时会被阻塞并等待 ...
- MySQL 基础知识梳理学习(三)----InnoDB日志相关的几个要点
1.InnoDB的特点 :(1)Fully ACID (InnoDB默认的Repeat Read隔离级别支持):(2)Row-level Locking(支持行锁):(3)Multi-version ...
- MySQL 基础知识梳理学习(二)----记录在页面层级的组织管理
1.InnoDB的数据存储结构 InnoDB中数据是通过段.簇.页面构成的. (1)段是表空间文件中的主要组织结构,它是一个逻辑概念,用来管理物理文件,是构成索引.表.回滚段的基本元素.创建一个索引( ...
- MySQL 基础知识梳理学习(六)----锁
1.什么是锁: 对共享资源进行并发访问控制,提供数据的完整性和一致性. 2.锁的区别: 类型 lock latch 对象 事务 线程 保护 数据库内容 内存数据结构 持续时间 整个事务过程 临界资源 ...
随机推荐
- 浏览器环境下JavaScript脚本加载与执行探析之defer与async特性
defer和async特性相信是很多JavaScript开发者"熟悉而又不熟悉"的两个特性,从字面上来看,二者的功能很好理解,分别是"延迟脚本"和"异 ...
- 【文文殿下】 [USACO08MAR]土地征用 题解
题解 斜率优化裸题. 有个很玄学的事情,就是我用\(f[i]=min\{f[j-1]+p[j].y*p[i].x\}\) 会很奇怪的Wa . 明明和\(f[i]=min\{f[j]+p[j+1].y* ...
- 36_并发编程-multiprocess模块
仔细说来,multiprocess不是一个模块而是python中一个操作.管理进程的包. 之所以叫multi是取自multiple的多功能的意思,在这个包中几乎包含了和进程有关的所有子模块.由于提供的 ...
- ReactiveCocoa 源码阅读记录。
1:RACSingle 需要订阅信号 RACSignal *signal = [RACSignal createSignal:^RACDisposable * _Nullable(id<RACS ...
- 【kuangbin专题】计算几何_半平面交
1.poj3335 Rotating Scoreboard 传送:http://poj.org/problem?id=3335 题意:就是有个球场,球场的形状是个凸多边形,然后观众是坐在多边形的边上的 ...
- 【dpdk】使用libpcap-PMD驱动收发包
ref: Dpdk programmer’s guide 1. 概述 dpdk不仅提供针对物理和虚拟网卡的pmd驱动(Poll Mode Drivers),还提供两个纯软件的pmd驱动,libpca ...
- 谈一谈对MySQL InnoDB的认识及数据库事物处理的隔离级别
介绍: InnoDB引擎是MySQL数据库的一个重要的存储引擎,和其他存储引擎相比,InnoDB引擎的优点是支持兼容ACID的事务(类似于PostgreSQL),以及参数完整性(有外键)等.现在Inn ...
- cAdvisor+InfluxDB+Grafana 监控Docker
容器的监控方案其实有很多,有docker自身的docker stats命令.有Scout.有Data Dog等等,本文主要和大家分享一下比较经典的容器开源监控方案组合:cAdvisor+InfluxD ...
- 从用户浏览器输入url到用户看到页面结果的过程,发生了什么事情?
1.域名解析 域名解析的过程: 1).查询浏览器自身DNS缓存 2).若上面没有查找到,则搜索操作系统自身的dns缓存 3).若上面没有找到,则尝试读取hosts文件 4).若上面没有找到,向本地配 ...
- MapReduce中的partitioner
1.日志源文件: 1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 2481 ...