![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 79
tingxuejianghu
这个作者很懒,什么都没留下…
展开
-
MySQL(10)——主从复制
一、主从复制原理 slave节点会从master节点读取binlog来进行数据同步。主要有以下三个步骤: master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(binary log events)。 slave将master的binary log events拷贝到中继日志(relay log)。 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL的复制是异步且串行化的。在主从复制过程中,最大的问题就是延时。 在MySQL主从复制中: 每个原创 2021-04-21 10:06:10 · 154 阅读 · 0 评论 -
MySQL(9)——表锁和行锁
在数据库中,除传统计算资源(CPU、RAM、I\O等)的争抢,数据也是一种供多用户共享的资源。 如何保证数据并发访问的一致性,有效性,是所有数据库必须要解决的问题。 锁冲突也是影响数据库并发访问性能的一个重要因素,因此锁对数据库尤其重要。 但是加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否已解除、释放锁等 ,都会增加系统的开销。 一、表锁 (一)理论 表锁偏向于MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发度低。 表锁分为读锁和写锁: 读锁(read lock原创 2021-04-20 17:29:58 · 123 阅读 · 0 评论 -
MySQL(8)——Show Profile、Trace和全局查询日志
一、Show Profile show profile是mysql提供的可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量。 默认情况下,该参数处于关闭状态,并保存最近15次的运行结果。 (一)开启 1. 查看当前版本mysql是否支持 mysql> select @@have_profiling; +------------------+ | @@have_profiling | +------------------+ | YES | +------原创 2021-04-19 16:10:09 · 580 阅读 · 0 评论 -
MySQL(7)——慢查询日志
一、 概述 慢查询是MySQL中提供的一个记录耗时特别长的SQL语句的功能。该功能默认是关闭的。打开之后,慢查询日志默认记录在日志文件中,可以配置为记录在表中。 慢查询会对服务器性能产生一定的影响,一般不在生产环境中开启。 二、开启慢查询 1. 查看开启状态 show variables like 'slow_query%'; +---------------------+--------------------------------------+ | Variable_name | Val原创 2021-04-19 11:59:55 · 81 阅读 · 0 评论 -
MySQL(6)——性能优化之正确使用in和exists
我们在平时写sql的时候经常会用到in和exists这两个关键字,并且在大多数时候这两个关键字是可以达到相同的目的。那么在什么情况下使用in,什么情况下使用exists才会使得我们的sql查询效率最高呢? 实际上,in关键字是将外表和内表做哈希连接(hash join),而exists关键是是对外表做一次循环(loop),然后每次再对内表进行查询。 知晓了原理之后,我们再来举个实际的例子: select * from member t1 where t1.id in (select t2.memberid转载 2021-04-16 11:35:23 · 128 阅读 · 0 评论 -
MySQL(5) ——性能优化之索引优化
一、最左前缀原则 索引可以包含一个列或多个列的值。如果是多列,顺序也很重要,MySQL只能高效地使用索引最左前缀列。 比如对User表的name和city加联合索引就是(name,city),最左前缀原则指的是:如果查询的时候查询条件精确匹配索引的左边连续一列或几列,则此列就可以被用到。 -- 可以命中索引 select * from user where name=xx and city=xx ; -- 可以命中索引 select * from user where name=xx ; -- 无法命中索原创 2021-04-16 10:43:04 · 155 阅读 · 0 评论 -
MySQL(4)——Explain详解
一、Explain 可以查看执行计划,模拟优化器执行SQL 用法: explain <SQL 语句> 可以: 查看表的读取顺序(id) 数据读取操作的操作类型(type) 哪些索引可以使用(possible_keys) 哪些索引实际被使用(key) 表之间的引用(ref) 每张表有多少行被优化器查询(rows) 二、字段解释 ±—±------------±------±------±------------------±--------±--------±------±-----±----原创 2021-04-13 22:13:28 · 88 阅读 · 0 评论 -
MySQL(3)——索引基础
一、索引是什么 索引是存储引擎用于快速找到记录的一种数据结构。 索引对于良好的性能非常关键。 索引优化是对查询性能优化最有效的手段。 索引可以包含一个列或多个列的值。如果是多列,顺序也很重要,MySQL只能高效地使用索引最左前缀列。创建一个包含两个列的索引和创建两个只包含一个列的索引大不相同。 二、索引的类型 1. B-Tree(JAVA程序员关注) 真实的数据存在于叶子节点,非叶子节点不存真实数据,而是存指引搜索方向的数据。 B-Tree对索引列是顺序组织存储的,所以很适合查找范围数据。 2. 哈希索引原创 2021-04-13 21:10:24 · 56 阅读 · 0 评论 -
MySQL(1)——逻辑架构和SQL执行顺序
一、MySQL逻辑架构 (一)逻辑架构总览 Connectors:接入方,支持协议很多 Management Serveices & Utilities:系统管理和控制工具例如:备份恢复,mysql复制集群等 Connection Pool:连接池:管理缓冲用户连接、用户名、密码、权限校验、线程处理等需要缓存的需求 SQL Interface:SQL接口:接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface Parser: 解析器,SQL原创 2021-04-13 15:14:18 · 112 阅读 · 0 评论 -
MySQL(0)——CentOS7安装MySQL5.7
一、配置YUM 参考官方文档 1. 下载MySQL Yum Repository 打开:https://dev.mysql.com/downloads/repo/yum/ 下载Red Hat Enterprise Linux 7 / Oracle Linux 7 (Architecture Independent), RPM Package wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm 2. 添加MySQ原创 2021-04-12 22:48:25 · 126 阅读 · 0 评论