MySql优化相关概念的理解笔记】的更多相关文章

MySQL架构 查询执行流程 查询执行的流程是怎样的: 连接1.1客户端发起一条Query请求,监听客户端的‘连接管理模块’接收请求1.2将请求转发到‘连接进/线程模块’1.3调用‘用户模块’来进行授权检查1.4通过检查后,‘连接进/线程模块’从‘线程连接池’中取出空闲的被缓存的连接线程和客户端请求对接,如果失败则创建一个新的连接请求.处理2.1先查询缓存,检查Query语句是否完全匹配,2.2查询缓存失败则转交给‘命令解析器’2.3再转交给对应的模块处理2.4如果是SELECT查询还会经由‘查…
可以从这些方面进行优化: 数据库(表)设计合理 SQL语句优化 数据库配置优化 系统层.硬件层优化 数据库设计 关系数据库三范式 1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; - 不符合第一范式的例子(关系数据库中create不出这样的表): [表]字段1, 字段2(字段2.1, 字段2.2), 字…
当一个系统访问量上来的时候,不只是数据库性能瓶颈问题了,数据库数据安全也会浮现,这时候合理使用数据库锁机制就显得异常重要了. 原文:http://www.jianshu.com/p/163c96983ca9 (一)MySQL优化笔记(一)--库与表基本操作以及数据增删改 (二)MySQL优化笔记(二)--查找优化(1)(非索引设计) (三)MySQL优化笔记(二)--查找优化(2)(外连接.多表联合查询以及查询注意点) (四)MySQL优化笔记(三)--索引的使用.原理和设计优化 (五)MySQ…
过年闲得蛋疼,于是看看mysql优化,看了网上好多关于分页的优化方法,但是呢,我亲自试上一把的时候,没有出现他们说的现象...难道是我的机器问题么? 下面看看我的实践记录,希望看到的加入进来交流一下O(∩_∩)O~ 以下采用常规分页和网上大伙都提倡的做法: offset较小时: 常规做法…
大型网站提速之MySql优化 数据库优化包括的方面 数据库优化是一个综合性的技术,并不是通过某一种方式让数据库效率提高很多,而是通过多方面的提高,从而使得数据库提高很多. 主要包括: 1.表的设计合理化(3范式) 2.Sql语句的优化 3.给表要添加合适的索引,如何使用索引 4.分表技术(水平分割,垂直分割) 5.定时清除垃圾数据,定时进行碎片整理 6.多用存储过程,和触发器 7.对mysql配置进行一些优化 8.读写分离 9.MySql服务器硬件升级 数据库的设计: 良好的数据库: 1.节省的…
在写文章之前,首先感谢 飞友科技 陆老师提供的文档.. 声明一下:下面的优化方案都是基于 “ Mysql-索引-BTree类型 ” 的 0x00 EXPLAIN 做MySQL优化,我们要善用 EXPLAIN 查看SQL执行计划. 下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据 type列,连接类型.一个好的sql语句至少要达到range级别.杜绝出现all级别 key列,使用到的索引名.如果没有选择索引,值是NULL.可以采取强制索引方式 key_len列,索引长度 rows…
数据表总共81万条数 SQL explain ); 执行时间超级长,没有等到执行完成就终止了太慢了 explain一下 发现表bb 的select_type 为DEPENDENT SUBQUERY  搜索了一下资料 基础知识:Dependent Subquery意味着什么 官方含义为: SUBQUERY:子查询中的第一个SELECT: DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询 . 换句话说,就是 子查询对 bb 的查询方式依赖于外层 a 的查询. 什么…
一.数据库范式                                                                               为了建立冗余较小.结构合理的数据库,设计数据库时必须遵循一定的规则.在关系型数据库中这种规则就称为范式.范式是符合某一种设计要求的总结.要想设计一个结构合理的关系型数据库,必须满足一定的范式. 1.1.第一范式(1NF:每一列不可包含多个值)      所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列…
最近听讲了博森瑞老师的mysql优化公开课,这个是我整理的笔记. 现在说一下mysql的内存和I/O方面的两个特点. 一. mysql内存特点: 1.  也有全局内存和每个session的内存(每个session类似于oracle的sga和pga),但是针对每个session的内存,我们不要给它分配过大.如果对每个session的内存分配过大,会造成oom的发生.在高并发下,增加物理内存就可以减少物理I/O.所以mysql的内存管理比oracle简单一些. 2.在oracle里面有library…
一.创建索引需要关注什么? 1.关注基数列唯一键的数量: 比如性别,该列只有男女之分,所以性别列基数是2: 2.关注选择性列唯一键与行数的比值,这个比值范围在0~1之前,值越小越好: 其实,选择性列唯一键与行数的比值,只要列值区分度越高,这个比值就会相对越小 3.where like关键字的前面使用%会全表扫描,不走索引 4.禁止使用select,建议使用select <字段…>,因为select 会读取大量数据,不利于索引覆盖技术: 5.大批量导入数据的优化方法: (1)先导入数据,等待数据…