
mysql
盲流子开发
这个作者很懒,什么都没留下…
展开
-
CentOS7安装mysql5.7
1. 安装系统环境包 yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel 2. 下载mysql安装包 由于在线安装受制于网络环境,所以选择tar包编译安装。 首先去mysql镜像站...原创 2019-07-10 11:43:07 · 156 阅读 · 0 评论 -
MySQL高级性能优化---in与exists选择
首先举例来讲解in与exists的使用状况 in exists in与exists的选择 当A表中数据多于B表中的数据时,这时我们使用IN优于EXISTS 当B表中数据多于A表中的数据时,这时我们使用EXISTS优于IN 因此是使用IN还是EXISTS就需要根据我们的需求决定了。但是如果两张表中的数据差不多时那么是使用IN还是使用EXISTS差别不大。 EXISTS子查询只返回true或者fa...原创 2019-07-12 11:53:38 · 1659 阅读 · 0 评论 -
MySQL高级性能优化---limit优化
当表中存在大批量数据时分页如何优化? 我们先创建一张employee表, 使用存储过程或者函数创建1000万条数据。 limit查询分析 使用limit随着offset增大,查询的速度会越来越慢。 limit查询会把前边的数据都取出来,比如limit 100000, 10时会把前10万条数据取出找到对应的位置,再取10条数据。因此你的offset的值越大查询的数据就越多 所以我们对limit进行...原创 2019-07-12 11:28:37 · 1193 阅读 · 0 评论 -
MySQL高级性能优化---排序与分组优化
这篇博客跟MySQL高级性能优化—Explain博客有关联,主要讲的是Extra的Using filesort和Using temporay如何避免,不懂Using filesort和Using temporay的朋友建议去看一看这篇MySQL高级性能优化—Explain博客。 1. 排序优化 在使用order by的时候,经常出现Using filesort, 我们应避免Using fileso...原创 2019-07-12 10:43:28 · 3294 阅读 · 0 评论 -
MySQL高级性能优化---索引失效
造成索引失效有多个原因,本文讲解索引失效的原因有哪些 1. 全值匹配 给employee表建立一个复合索引 CREATE INDEX idx_name_dpeid_age on employee(name,dep_id, age) 查询时候尽量全部用上建立的复合索引 2. 最佳左前缀法则 如果建立了多列索引,要遵守最左前缀法则,指的就是从索引的最左列开始,并且不跳过索引中的列。 跳过第一个,索...原创 2019-07-11 17:58:32 · 568 阅读 · 0 评论 -
MySQL高级性能优化---Explain
使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。 通过EXPLAIN,我们可以分析出以下结果: 表的读取顺序 数据读取操作的操作类型 哪些索引可以使用 哪些索引被实际使用 表之间的引用 每张表有多少行被优化器查询 1. Explain使用方法 explain sql语句 示例: EXPLAIN selec...原创 2019-07-11 16:55:27 · 785 阅读 · 0 评论 -
MySQL高级性能优化---性能分析
1. 表设计准则 1.1 满足关系数据库的三范式 1NF 是指数据库表的每一列都是不可分割的基本数据项,同一列不能有多个值。 第一范式(1NF)是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库 2NF 要求数据库表中的每个实例或行必须可以被唯一的区分。(设置主键来区分) 3NF 要求一个数据库表中不包括已在其它表中已包含的非主关键信息。两张表不要重复的字段,通常都是设置外键 1.2 ...原创 2019-07-11 12:27:38 · 399 阅读 · 0 评论 -
MySQL高级性能优化---索引
1. 什么是索引 帮助Mysql高效获取数据的数据结构,索引就是一种数据结构,这种数据结构类似新华字典的索引目录, 可以通过索引目录快速查到你想要的字,排好序的快速查找数据 2. 为什么要建立索引 提高查询效率 3. 优势 索引类似大学图书馆建立的书目索引,提高检索效率,降低数据库的IO成本 通过索引对数据进行排序,降低数据排序成本,降低了CPU的消耗 4. 劣势 一般来说,索引本身也很大,索引往...原创 2019-07-11 11:42:06 · 231 阅读 · 2 评论 -
MySQL高级性能优化---优化分析
1. sql性能下降的表现 执行时间长 等待时间长 2. 性能下降的原因 查询语句写的不好 各种连接,各种子查询导致用不上索引或者没有建立索引 建立的索引失效 建立了索引,在真正执行时,没有用上建立的索引 关联查询太多join 服务器调优及和个配置参数导致 如果设置的不合理,比例不恰当,也会导致性能下降,sql变慢 ...原创 2019-07-10 16:56:23 · 218 阅读 · 0 评论 -
MySQL高级性能优化---JOIN连接
1. 先准备测试表数据 创建两种表部门表(department)和员工表(employee) 2. 内连接 2.1 作用 查询两张表的共有部分 2.2 语句 Select <select_list> from tableA A Inner join tableB B on A.key = B.key select * from employee e INNER JOIN depa...原创 2019-07-10 16:43:48 · 679 阅读 · 0 评论 -
MySQL高级性能优化---sql的执行顺序
1. 代码编写顺序 select 查询字段 from 表名 JOIN 表名 ON 连接条件 where 查询条件 group by 分组字段 having 分组后条件 order by 排序条件 limit 查询起始位置,查询条数 2. Mysql读取顺序 from 表名 JOIN 表名 ON 连接条件 where 查询条件 group by 分组字段 having 分组后条件 selec...原创 2019-07-10 16:01:00 · 302 阅读 · 0 评论 -
MySQL高级性能优化---存储引擎篇
1. 存储引擎的概念 数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。 现在许多数据库管理系统都支持多种不同的存储引擎。MySQL 的核心就是存储引擎 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储...原创 2019-07-10 15:44:08 · 195 阅读 · 0 评论 -
MySQL高级性能优化---MySQL逻辑架构篇
1. MySQL总体分层 1.1 连接层 我们客户端发送一个Select是直接交给连接层来处理,而它的作用就是提供与客户端连接的服务.连接层只是与客户端建立起连接.完成一些类似连接处理,授权认证 及相关的安全方案. 在该层上引入了连接池的概念. 1.2 服务层 提供核心的服务功能,如sql接口,完成缓存的查询, sql的分析和优化部分及内置函数的执行. 服务包括以下内容: 1.2.1-Mange...原创 2019-07-10 14:27:38 · 476 阅读 · 0 评论 -
MySQL高级性能优化---慢日志查询
1. 概述 MySQL的慢查询日志时MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句。 具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。 long_query_time的默认值为10,意思是运行10s以上的语句。就会被认作是慢查询。 默认情况下,mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,如果不是调优需要的话,一...原创 2019-07-14 15:33:11 · 438 阅读 · 0 评论 -
MySQL高级性能优化---主从复制
1. 主从复制的原理 数据库有个bin-log二进制文件,记录了所有sql语句。我们的目标就是把主数据库的bin-log文件的sql语句复制过来。让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。下面的主从配置就是围绕着这个原理配置。具体需要三个线程来操作。 具体需要三个线程来操作 ** 去请求主库的binlog,并将得到的binlog日志写到relay-log(中继日志...原创 2019-07-12 16:44:05 · 789 阅读 · 0 评论