摘要: 一、索引失效的情况 前文提及过可以通过explain的possible_keys、key属性判断索引是否失效,key如果为null,可能是索引没建,也可能是索引失效,下面列举一些会使索引失效的情况。 1、全值匹配:顺序、个数与索引一致 2、最佳左前缀法则:查询从索引的最左前列开始并且不跳过索引中的列 阅读全文
posted @ 2018-06-10 18:32 湮天霸神666 阅读(30312) 评论(0) 推荐(6) 编辑
摘要: Explain是Mysql的自带查询优化器,负责select语句的优化器模块,可以模拟优化器执行SQL查询语句,从而知道Mysql是如何处理SQL的,语法也很简单:Explain + SQL 以下是通过explain查询出的几个属性 (常见性能瓶颈 —— CPU:CPU饱和一般发生在数据装入内存或从 阅读全文
posted @ 2018-06-09 19:24 湮天霸神666 阅读(4932) 评论(0) 推荐(3) 编辑
摘要: 对慢SQL优化一般可以按下面几步的思路: 1、开启慢查询日志,设置超过几秒为慢SQL,抓取慢SQL 2、通过explain对慢SQL分析(重点) 3、show profile查询SQL在Mysql服务器里的执行细节和生命周期情况(重点) 4、对数据库服务器的参数调优 一、慢查询日志 1、设置慢查询 阅读全文
posted @ 2018-06-09 19:07 湮天霸神666 阅读(16511) 评论(0) 推荐(0) 编辑
摘要: 一、基本语法 创建索引前会先排序,会影响where和order by的效率。 索引也是一张表,保存了主键和索引字段和指向实体表的记录,也是要占空间的,以索引文件的形式存储在磁盘。 增删改数据时,索引指向也要改变,所以会慢,需要频繁删改的字段不适合建索引。 索引的建立也需要不断的优化、调整。 二、索引 阅读全文
posted @ 2018-06-05 21:55 湮天霸神666 阅读(911) 评论(0) 推荐(0) 编辑
摘要: 一、逻辑架构 MySQL也采用分层架构。插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存取相分离,这样就可以根据业务需求来选择适合的存储引擎。 1、层次结构 连接层 —— 业务逻辑处理层(处理sql)—— 数据存储引擎 —— 硬盘 (1)连接层 是一些客户端和连接服务,主要完成类似于连接处 阅读全文
posted @ 2018-06-01 19:35 湮天霸神666 阅读(590) 评论(0) 推荐(1) 编辑
摘要: 查看存储引擎:show engines; InnoDB支持事务,MyISAM、MEMORY不支持事务 1、事务的特性:(ACID) 原子性:一个事务不可再分割,要么都执行要么都不执行。 一致性:一个事务执行会使数据从一个一致状态切换到另一个一致状态 隔离性:一个事务的执行不受其他事务的干扰(需要通过 阅读全文
posted @ 2018-05-31 08:10 湮天霸神666 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 一、视图 正式环境中有时需要只提供原始表的部分信息以保护数据安全性,就可以用视图,相当于虚拟表 二、变量 1、系统变量:由系统提供,属于服务器层面 (1)全局变量:针对所有会话有效,但不能跨重启 (2)会话变量:针对一次会话 2、自定义变量: (1)用户变量:针对当前会话有效,在begin end里 阅读全文
posted @ 2018-05-30 21:56 湮天霸神666 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 一、DDL语言 1、库操作 2、表操作 二、数据类型 1、数值型 (1)整型: tinyint、smallint、mediumint、int/integer、bigint 1字节 2字节 3字节 4字节 8字节 1字节=8位 默认有符号,添加unsigned可设置为无符号 平时定义的INT(7)中7 阅读全文
posted @ 2018-05-30 20:09 湮天霸神666 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 记录一些可能会用到但又容易忘记的语法。 一、数据增删改 二、SQL执行顺序 (1)order by,如按多个字段排序,先按第一个字段排序,排序相同的部分,再按第二个字段排序 (2)group by,按多个字段分组,则多个字段一致的表示一组。 与oracle不同,oracle中,select只能查出现 阅读全文
posted @ 2018-05-30 19:59 湮天霸神666 阅读(414) 评论(0) 推荐(0) 编辑