MySQL高级学习
丶小颜
这个作者很懒,什么都没留下…
展开
-
(一)MySQL高级——索引
一、索引是帮助mysql高效获取数据的数据结构。索引的本质就是数据结构,可以简单理解为:“排好序的快速查找数据结构”。或者这样去理解:在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(可以理解为指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:左边是数据表,一共有两列七条记录,最左边的...原创 2018-11-14 14:22:38 · 230 阅读 · 0 评论 -
(二)MySQL高级——explain
一、Explain是什么?查询执行计划。使用EXPLAIN关键字可以模拟优化器执行sql查询语句,从而得知MySQL是如何处理写好的sql语句的。分析这些查询语句或是表结构的性能瓶颈。二、Explain能做什么?查看表的读取顺序、数据读取操作的操作类型,发现哪些索引是可以使用的,哪些又是被实际使用到的,可以查出表之间的引用,甚至能够知道每张表有多少行被优化器查询。三、Explain...原创 2018-11-15 14:43:44 · 245 阅读 · 0 评论 -
(四)MySQL高级——查询优化
优化一:小表驱动大表,意思就是小的数据集驱动大的数据集。(1)当B表的数据集是小于A表的数据集时,用 IN 优于 EXISTS 。SELECT * FROM A WHERE id IN(SELECT id FROM B)-- 等价于FOR SELECT id FROM BFOR SELECT * FROM A WHERE A.id=B.id(2)当A表的数据集是小于B表...原创 2018-11-21 14:44:12 · 263 阅读 · 0 评论 -
(三)MySQL高级——索引优化多案例
最佳左前缀法则:如果索引了多列,就要遵守该法则。该法则指的是查询从索引的最左前列开始并且中间不跳过索引中的列。一、索引失效(应该避免)(1)案例一:建立的索引是age、name、pos一起的,前两个情况中缺失第一个字段,或者中间缺失索引列都是没有用上最佳左前缀法则的,应该避免。虽然显示用到了索引,但是可以上下比较key_len的长度并没有改变,这与实际是两个筛选条件是不相符的,因此...原创 2018-11-19 18:24:29 · 346 阅读 · 0 评论 -
(五)MySQL高级——慢查询日志
慢查询日志是什么MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录MySQL中响应时间超过阙值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的语句。由它来查看哪些SQL超出了我...原创 2018-11-26 16:09:56 · 183 阅读 · 0 评论 -
(六)MySQL高级——批量插入数据脚本
情景:往表里插入1000W条数据1、建表-- 新建库CREATE DATABASE bigData;USE bigData;-- 建表deptCREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, ...原创 2018-11-26 17:49:57 · 1701 阅读 · 0 评论 -
(八)MySQL高级——数据库锁
1、锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如COU、RAM、I/O等)的争用以外,数据也是一种供许多用户享用的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。2、锁的分类:从对数据操作的类型(读\写)分 --- ...原创 2018-12-13 17:02:40 · 255 阅读 · 0 评论 -
(七)MySQL高级——用Show Profile进行sql分析&全局查询日志
Show Profile 介绍:是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于sql的调优的测试。默认情况下,参数处于关闭状态,并保存最近15次的运行结果。Show Profile 分析步骤:1、是否支持,查看当前的MySQL版本是否支持;Show variables like 'profiling';-- 或者Show variables lik...原创 2018-12-06 18:19:04 · 491 阅读 · 2 评论 -
(九)MySQL高级——主从复制
1、复制的基本原理slave会从master读取binlog来进行数据同步1.1、三步骤(1)matser将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events;(2)slave 将master 的 binary log events 拷贝到它的中继日志(relay log);(3)slave 重做中继日...原创 2018-12-17 10:53:24 · 200 阅读 · 0 评论