摘要: 1.是什么: 是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于SQL的调优的测量 show profile 查询SQL在MySQL服务器里面的执行细节和生命周期情况 2.默认情况下,参数处于关闭状态,并保存最近15次的运行结果 3.分析步骤 1.是否支持:看看当前mysql版本 阅读全文
posted @ 2017-08-15 21:26 白日梦想家12138 阅读(164) 评论(0) 推荐(0) 编辑
摘要: SQL优化分析 过程 1.观察,至少跑一天。看看生产的慢SQL情况 2.开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL,并将它抓取出来 3.explain + 慢SQL分析 4.show profile 5.运维经理 or DBA ,进行数据库调优 总结: 1.慢查询的开启并捕获 2.exp 阅读全文
posted @ 2017-08-15 21:12 白日梦想家12138 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1.永远小表驱动大表 exist 和 in:exist返回 true /false,in 返回具体的结果 1.select * from A where exists (select 1 from B where B.id = A.id) 使用 exist,会先查询A,再去查询B里面 B.id = 阅读全文
posted @ 2017-08-15 20:40 白日梦想家12138 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 索引分析 1.单表的优化: 上面的注释已经提到了 BTree 索引的工作原理,在一个联合索引中,按照创建索引时的字段的顺序,来为其进行排序 select a,b from t1 where x = 1 and y > 1 order by z ;联合索引为(x,y,z),x,z给出了一个确切的值,y 阅读全文
posted @ 2017-08-15 20:18 白日梦想家12138 阅读(193) 评论(0) 推荐(0) 编辑
摘要: possible_keys 显示可能应用在这张表的索引,一个或多个 查询涉及到的字段上若存在索引,则该索引将被列出,但不一定被实际查询使用 key 实际使用的索引。如果为NULL,则没有使用索引 查询中若使用了 覆盖索引,则该索引和查询的select字段重叠 select 字段可以是索引的一部分,即 阅读全文
posted @ 2017-08-15 17:33 白日梦想家12138 阅读(170) 评论(0) 推荐(0) 编辑
摘要: explain:查看执行计划 使用explain 关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的 分析你的查询语句或是表结构的性能瓶颈 使用explain 可以获取哪些信息: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引 阅读全文
posted @ 2017-08-15 16:43 白日梦想家12138 阅读(487) 评论(0) 推荐(0) 编辑
摘要: B+树的创建(索引的创建) 1.比如为phoneNum创建了一个索引,phoneNum这列保存了很多的手机号码 2.索引创建的过程中,会为这些数据进行适当的编码(根据这个数据所在的物理地址),如 3670 可能编成 66 这个号码 3.然后根据所有编成的号码,创建一些对比值,这些对比值实际上是不存在 阅读全文
posted @ 2017-08-15 15:05 白日梦想家12138 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 索引是什么: 1.MySQL官方对索引的定义为:索引(Index) 是帮助MySQL高效获取数据的数据结构 2.可以理解为 “排好序的快速查找数据结构” 索引是排好序的,能够用于快速查找的数据结构,索引可以帮助我们两点: 1.对于需要排序的相关的命令,可以减轻cpu的负担 2.可以加快查询速度,减少 阅读全文
posted @ 2017-08-15 11:46 白日梦想家12138 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 性能下降 SQL慢,执行时间长,等待时间长 1.查询语句写的烂 2.索引失效 单值索引失效 和 复合索引失效 3.关联查询太多join(设计缺陷或不得已的需求) 4.服务器调优及各个参数设置(缓冲、线程等) 常见通用的Join查询: 1.SQL执行顺序: 手写: 机读: 2.Join图 阅读全文
posted @ 2017-08-15 10:49 白日梦想家12138 阅读(235) 评论(0) 推荐(0) 编辑
摘要: MySQL简介: 高级MySQL:mysql 内核 sql优化工程师 mysql服务器的优化 各种参数常量设定 查询语句优化 主从复制 软硬件升级 容灾备份 sql编程 完整的mysql优化需要很深的功底 MysqlLinux版的安装(mysql5.5) 1.下载地址 2.检查当前系统是否安装过my 阅读全文
posted @ 2017-08-15 10:00 白日梦想家12138 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 1 事务并发处理 a) 事务的四大特性:ACID b) 事务并发时可能出现的问题: 时间 取款事务A 存款事务B T1 开始事务 T2 开始事务 T3 查询账户余额为1000元 T4 查询账户余额为1000元 T5 汇入100元把余额改为1100元 T6 提交事务 T7 取出100元把余额改为900 阅读全文
posted @ 2017-08-15 09:21 白日梦想家12138 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 演示不同隔离级别下的并发问题 1.当把事务的隔离级别设置为read uncommitted,会引发脏读、不可重复读和虚读A窗口set transaction isolation level read uncommitted;start transaction;select * from bank; 阅读全文
posted @ 2017-08-15 09:02 白日梦想家12138 阅读(252) 评论(0) 推荐(0) 编辑
摘要: /*文件上传*/(common-fileupload)(common-fileupload是依赖于common-io这个包的) 使用Apache文件上传组件处理文件上传 /*步骤*/: 1.创建一个DiskFileFactory factory = new DiskFileFactory(); 2. 阅读全文
posted @ 2017-08-15 08:46 白日梦想家12138 阅读(173) 评论(0) 推荐(0) 编辑