![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 78
星河Galaxy
这个作者很懒,什么都没留下…
展开
-
Mysql常见的水平分表
根据经验,Mysql表数据一般达到百万级别,查询效率会很低,容易造成表锁,甚至堆积很多连接,直接挂掉;水平分表能够很大程度较少这些压力。1.按时间分表这种分表方式有一定的局限性,当数据有较强的实效性,如微博发送记录、微信消息记录等,这种数据很少有用户会查询几个月前的数据,如就可以按月分表。2.按区间范围分表一般在有严格的自增id需求上,如按照user_id水平分表:table...转载 2018-09-28 13:28:28 · 1891 阅读 · 0 评论 -
MySQL高级学习(11)主从复制
一、原理1.master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events2.slave将master的binary log events拷贝到它的中继日志(relay log)3.slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的二、复制的基本原则1.每个slave只有...原创 2019-06-13 11:57:14 · 226 阅读 · 0 评论 -
MySQL高级学习(6)最全SQL性能分析 查询计划字段解析
一 MySQL Query OptimizerMySQL Optimizer是一个专门负责优化SELECT 语句的优化器模块,它主要的功能就是通过计算分析系统中收集的各种统计信息,为客户端请求的Query 给出他认为最优的执行计划,也就是他认为最优的数据检索方式。但不一定是最符合业务需求的。当客户端向MySQL发送一条sql语句的时候,命令解析器模块就会完成请求分类,区别度是读还是写,se...原创 2019-06-06 18:35:53 · 370 阅读 · 0 评论 -
MySQL高级学习(5)索引
一 索引简介 索引的本质就是:索引一种数据结构 可以理解为:排好序的快速查找的数据结构在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。下图就是一种可能的索引方式示例:左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址为了加快Col2的查找,可以维...原创 2019-06-06 15:06:23 · 202 阅读 · 0 评论 -
MySQL高级学习(4)SQL执行顺序与join
我们手写的语句是这样的而机器读取顺序是这样的join1 A、B两表共有select * from t_emp ainner joint_dept b on a.deptId = b.id;2 A、B两表共有+A的独有select * from t_emp aleft joint_dept b on a.deptId = b.id;3 A、B两表共有+B的...原创 2019-06-06 13:52:43 · 371 阅读 · 0 评论 -
MySQL高级学习(3)存储引擎
1、InnoDB存储引擎nnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。行级锁,适合高并发情况2、MyISAM存储引擎MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务和行级锁(myisam改表时会将整个表全锁住),有...转载 2019-06-06 10:43:04 · 155 阅读 · 0 评论 -
MySQL高级学习(2)逻辑架构
和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。1.连接层数据库连接池,最上层是一些客户端和连接服务,包含本地sock通信和大多数基于客户端/服务端工具实现的类似于tcp/ip的通信。主要完成一些类...原创 2019-06-06 10:10:35 · 185 阅读 · 0 评论 -
MySQL高级学习(1)配置文件
一.Mysql高手是怎样炼成的二 mysql配置文件1.二进制日志log-bin主从复制及备份恢复2.错误日志log-error默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等。3.慢查询日志log默认关闭,记录查询的sql语句,如果开启会减低mysql的整体性能,因为记录日志也是需要消耗系统资源的4.数据文件 (1)Myisam...原创 2019-06-06 10:04:50 · 142 阅读 · 0 评论 -
MySQL高级学习(10)Mysql profiles
1.是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量2.默认情况下,参数处于关闭状态,并保存最近15次的运行结果3.Show variables like 'profiling'; 默认是关闭,使用前需要开启4.set profiling=1; 开启5.查看结果,show profiles;6.诊断SQL,show profile ...原创 2019-06-12 16:57:22 · 276 阅读 · 0 评论 -
MySQL高级学习(9)存储过程练习
1. 建表# 新建库create database bigData;use bigData;#1 建表deptCREATE TABLE dept( id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT, deptno MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, dname VARCHAR(20...原创 2019-06-12 16:55:35 · 1338 阅读 · 0 评论 -
MySQL高级学习(8)慢查询日志
一、介绍1.MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。SHOW VARIABLES LIKE '%slow_query_log%';set global slow...原创 2019-06-12 16:50:33 · 468 阅读 · 0 评论 -
MySQL高级学习(7)查询优化
一、关联查询优化(1)保证被驱动表的join字段已经被索引(2)left join 时,选择小表作为驱动表,大表作为被驱动表。(3)inner join 时,mysql会自己帮你把小结果集的表选为驱动表。(4)子查询尽量不要放在被驱动表,有可能使用不到索引。二、子查询优化(1)有索引的情况下 :用 inner join 是最好的 其次是 in ,exists最糟糕...原创 2019-06-12 16:49:00 · 254 阅读 · 1 评论 -
MySQL高级学习(7)索引优化
mysql 索引优化1. 最左前缀:如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过索引中的列。and 忽略左右关系。既即使没有按顺序 由于优化器的存在,会自动优化。经过试验结论 建立了 idx_nameAge 索引 id 为主键(1).当使用覆盖索引的方式时,(select name/age/id from staffs where age=...原创 2019-06-12 11:48:02 · 373 阅读 · 0 评论