高性能MySQL笔记
锁粒度:表锁、行级锁
表锁锁定整张表
隔离级别:
未提交读:事务中的修改,即使没有提交,对其他事务也是可见的。事务可以读取未提交的数据,也被称为脏读。实际应用中比较少用
提交读:一个事务提交之前,所做的任何修改对其他事务都是不可见的。两次执行同样的查询,可能得到不同的结果。也叫不可重复读。
可重复读:是MySQL默认的事务隔离级别,存在幻读问题。
可串行化:事务串行执行,避免幻读问题
死锁的解释:两个进程在同一个资源上相互占用,并请求锁定对方占用的资源。这个解释很简练。sql也存在死锁问题。
InnoDB处理死锁的方式:将持有最少行级排它锁的事务进行回滚。
MySQL提供两种事务型存储引擎:InnoDB、NDB Cluster
MySQL默认采用自动提交模式。每个查询都被当做一个事务执行提交操作。也就是说我执行一条sql语句,update整张表所有记录中的某一个字段,执行到某一条记录时出错,将全部回滚。
MyISAM是非事务型的表,没有COMMIT和ROLLBACK的概念。
在文件系统中,MySQL将每个数据库保存未数据目录下的一个子目录。创建表时,就在子目录创建一个与表同名的.frm文件
查看一张表的状态命令:
show table status like 'user'
MyISAM在对于只读数据或表比较小的操作,可以使用(但尽量默认使用InnoDB)
修改表引擎命令
alter table user engine = InnoDB;
性能优化并不是降低CPU利用率,而是增加CPU利用率,即等量的任务下,降低CPU的使用率。
尽量避免null,可以为null的列会使用更多的存储空间,当然将null的列改为not null带来的性能提升比较小,在设计的时候尽量设置为not null
varchar(5)和varchar(200),最好的策略是只分配真正需要的空间
MySQL提供两种相似的日期类型:Datetime和timestamp
范式化和反范式化
高性能MySQL笔记的更多相关文章
- 高性能MySQL笔记 第6章 查询性能优化
6.1 为什么查询速度会慢 查询的生命周期大致可按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中“执行”可以认为是整个生命周期中最重要的阶段. ...
- 高性能MySQL笔记 第5章 创建高性能的索引
索引(index),在MySQL中也被叫做键(key),是存储引擎用于快速找到记录的一种数据结构.索引优化是对查询性能优化最有效的手段. 5.1 索引基础 索引的类型 索引是在存储引擎层而 ...
- 读高性能MySql笔记
1.1 MySQL逻辑架构 MySql服务器逻辑架构图 1.连接管理与安全性 每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或者 ...
- 高性能Mysql笔记 — 索引
index优化 对于频繁作为查询条件的字段使用索引 注意索引字段类型的隐式转换,数据库类型和应用类型要一致 索引的种类 唯一索引,成为索引的列不能重复 单列索引,一个索引只包含一列 单列前缀索引,有些 ...
- 高性能MySQL笔记 第4章 Schema与数据类型优化
4.1 选择优化的数据类型 通用原则 更小的通常更好 前提是要确保没有低估需要存储的值范围:因为它占用更少的磁盘.内存.CPU缓存,并且处理时需要的CPU周期也更少. 简单就好 简 ...
- 高性能MySQL笔记:第1章 MySQL架构
MySQL 最重要.最与众不同的特性是他的存储引擎架构,这种架构的设计将查询处理(Query Precessing)及其系统任务(Server Task)和数据的存储/提取相分离. 1.1 MyS ...
- 高性能MySQL笔记-第1章MySQL Architecture and History-001
1.MySQL架构图 2.事务的隔离性 事务的隔离性是specific rules for which changes are and aren’t visible inside and outsid ...
- 高性能Mysql笔记 — 优化
性能优化 了解查询的整个生命周期,清楚每个阶段的时间消耗情况 性能分析 慢查询日志--服务器性能分析 参考 慢查询日志是优化很重要的手段,但是开启慢查询日志对性能的影响并不大,所以可以考虑在线上打开慢 ...
- 高性能Mysql笔记 — explain
explain 查看sql的执行计划,只是一个近似结果,一般不会实际执行该sql,如果有子查询就会执行子查询 explain table_name,这儿的table_name含义较广:子查询.unio ...
随机推荐
- Centos7配置hadoop伪分布式
修改hostname(可选) 通过下面命令查看hostname信息 hostnamectl 通过下面命令修改hostname hostnamectl set-hostname gy01 如图所示 下面 ...
- pm2模块编写入门
PM2 模块 PM2模块是通过PM2来安装和管理,代码可以托管在NPM中.任何人都可以创建和发布一个PM2模块,可以是日志模块.http代理模块.负载均衡模块.DNS服务器模块或任何类型的实用程序. ...
- java web 开发手册
W3School离线手册(2017.03) 提取密码: b2fo JavaScript高级程序设计第三版 提取密码: cscv CSS4.2.4 参 ...
- window、view相关
View.Window以及Activity主要是用于显示并与用户交互window view activity surfaceView 三者间的关系: 在Activity中要设置View时,通常用的方法 ...
- 鸟哥私房菜--进程SELinux
程序--binary file 进程(PID)--进行中的程序 服务--常驻内存的进程(crond atd 网络...) 父进程 fork()and exec()子进程(PID PPID) ps -l ...
- 转 tomcat+nginx+redis实现均衡负载、session共享(二)
http://www.cnblogs.com/zhrxidian/p/5491285.html http://www.cnblogs.com/zhrxidian/p/5432886.html
- Python之旅Day5 列表生成式 生成器 迭代器 装饰器
装饰器 器即函数,装饰即修饰,意指为其他函数添加新功能 装饰器定义:本质就是函数,功能是为其他函数添加新功能 装饰器涉及的知识点= 高阶函数+函数嵌套+闭包 在遵循下面两个原则的前提下为被装饰者新功能 ...
- Ural 1966 Cycling Roads
================ Cycling Roads ================ Description When Vova was in Shenzhen, he rented a ...
- feign调用spring clound eureka 注册中心服务
@RestController public class TestService { private TestApi computeClient; private static final Strin ...
- 第61节:Java中的DOM和Javascript技术
Java中的DOM和Javascript技术 DOM是一门技术,是文档对象模型.所需的文档只有标记型文档,如我们所学的html文档(文档中的所有标签都封装成为对象了) DOM: 为Document O ...