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