![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
诸般世界
这个作者很懒,什么都没留下…
展开
-
016 Sharding JDBC组件
官方网站:http://shardingsphere.apache.org/index_zh.html Sharding JDBC是Apache ShardingSphere(Incubator) 的一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立,却又能够混合部署配合使用的产品组成。MyCat与Sharding JDBC的实现方式对比图:一、Sharding...原创 2020-06-03 09:57:30 · 246 阅读 · 0 评论 -
015 MySQL分库分表
一、传统项目结构1.数据库性能瓶颈 数据库连接数有限 MySQL数据库默认100个连接、单机最大1500连接。 表数据量 单机表数量千级 单表数据千万级别 查询问题,索引命中率问题,索引存磁盘,占空间 硬件问题 2.数据库性能优化 1、参数优化 2、缓存、索引 3、读写分离 4、分库分表 (最终方案) 二、分库分表介绍1 使用背景 当【表的数量】达到了几百上千张表时,众多的业务模块都访问这个数据库,压力会比较...原创 2020-06-03 09:45:34 · 176 阅读 · 0 评论 -
014 mysql集群搭建之读写分离
一、读写分离意义 主从集群的问题,主对外工作,从不对外工作。主即要负责写操作,也要负责读操作,对于主从集群来说,只是保证了数据的安全备份。HAC:High Availability Cluster,高可用集群注意: MySQL的主从复制,只会保证主机对外提供服务,而从机是不对外提供服务的,只是在后台为主机进行备份;读写分离后,主负责写和部分读,从负责读,实现高性能高可用的数据库集群。二、读写分离演示需求MySQL master:128 MySQL...原创 2020-06-02 08:52:47 · 242 阅读 · 0 评论 -
013 MySQL集群搭建之主从复制
一、主从复制原理 主对外工作,从对内备份。1.关闭主从机器的防火墙systemctl stop iptables(需要安装iptables服务)systemctl stop firewalld(默认)systemctl disable firewalld.service(设置开启不启动)2.主服务器配置2.1修改my.cnf文件#启用二进制日志log-bin=mysql-bin#服务器唯一ID,一般取IP最后一段server-id=133#指定复...原创 2020-06-02 08:34:39 · 196 阅读 · 0 评论 -
012 mysql性能优化
一、服务器层面优化1.将数据保存在内存中,保证从内存读取数据 mysql的内存空间buffer pool默认128M,可以通过扩大buffer pool来实现内存读取,buffer pool理论上能够扩大到内存的3/4或4/5;--检查buffer pool是否够用?怎样确定 innodb_buffer_pool_size 足够大,数据是从内存读取而不是硬盘?mysql>show global status like 'innodb_buffer_pool_pages_%...原创 2020-06-02 08:17:04 · 140 阅读 · 0 评论 -
011 MySQL性能分析
一、性能分析的思路1.首先需要使用【慢查询日志】功能,去获取所有查询时间比较长的SQL语句;2.其次【查看执行计划】查看有问题的SQL的执行计划 explain;3.最后可以使用【show profile[s]】查看有问题的SQL的性能使用情况;二、慢查询日志--开启slow_query_log=ONlong_query_time=3slow_query_log_file=/var/lib/mysql/slow-log.log1.开启慢查询功能2.慢查询日志格式...原创 2020-06-01 20:53:52 · 225 阅读 · 0 评论 -
A999 MariaDB(mysql)主从修改IP
MariaDB配置主从后,出现IP调整时,或在虚拟机出现IP变化情况下,会出现无法复制;step1.进入从节点查看slave状态:关闭slave:step2.进入master节点,查看状态:step3.修改slave的master信息:CHANGE MASTER TO MASTER_HOST='192.168.85.140',MASTER_USER='slave',...原创 2019-11-06 09:48:22 · 540 阅读 · 0 评论 -
010 mysql行锁原理分析
一、简单SQL的加锁分析组合一:id主键+RC 最简单,最容易分析的组合,id是主键,Read Committed隔离级别;delete from t1 where id = 10; 只需要将主键上id = 10的记录加上X锁即可。组合二:id唯一索引+RC id不是主键,而是一个Unique的二级索引键值。delete from t1 where id = 10;组合三:id非唯一索引+RC 相对于...原创 2020-05-14 20:35:00 · 1087 阅读 · 0 评论 -
009 mysql事务分析
一、InnoDB的事务分析 数据库事务具有ACID四大特性;原子性(atomicity) :事务最小工作单元,要么全成功,要么全失败 。 一致性(consistency): 事务开始和结束后,数据库的完整性不会被破坏 。 隔离性(isolation) :不同事务之间互不影响,四种隔离级别为RU(读未提交)、RC(读已提交)、RR(可重复读)、SERIALIZABLE (串行化)。 持久性(durability) :事务提交后,对数据的修改是永久性的,即使系统故障也不会丢失 。...原创 2020-05-14 20:16:35 · 152 阅读 · 0 评论 -
008 mysql事务
MySQL中的事务由存储引擎实现,支持事务的存储引擎不多,本文主要了解InnoDB存储引擎中的事务。 事务处理用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。 事务用来管理DDL、DML、DCL 操作,如insert,update,delete 语句,默认是自动提交的。一、事务ACID特性 Atomicity 原子性,构成事务的所有必须是一个逻辑单元,要么全部执行,要么全部不执行(失败); ...原创 2020-05-14 19:55:00 · 162 阅读 · 0 评论 -
007 mysql行级锁
step1行级锁介绍 行级锁是由存储引擎实现(InnoDB存储引擎实现),InnoDB的行级锁,按照锁定范围来说,分为三种 ;记录锁(Record Locks):锁定索引中一条记录(主键指定where id=3) 间隙锁(Gap Locks): 锁定记录前、记录中、记录后的行 Next-Key 锁:(只出现在RR隔离级别中) 记录锁 + 间隙锁step2行级锁分类...原创 2020-05-07 21:57:03 · 236 阅读 · 1 评论 -
006 mysql锁
step1MySQL锁介绍(悲观锁) mysql在处理并发时采用锁机制; 乐观锁:默认无问题,当问题出现后再加锁; 悲观锁:默认会出现问题,未出现问题的时候就加锁; step2MySQL表级锁 表级锁由MySQL SQL layer层实现,表级锁锁定的是表,开销小加锁快,但是锁定粒度大,出现锁冲突的概率高(死锁); ...原创 2020-05-06 22:17:09 · 138 阅读 · 0 评论 -
005 mysql索引失效
step1 通过执行计划查看索引情况 explain + sql语句explain select * from t1 where a=1 and b=1 and c=1 and d=1 ;1.参数 explain出来的信息有10列:id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra;...原创 2020-05-04 22:26:40 · 253 阅读 · 0 评论 -
003 mysql索引
step1索引介绍 官方介绍索引是帮助MySQL高效获取数据的数据结构。通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。优势:①检索:可以提高数据检索的效率,降低数据库的IO成本,类似于书的目录。②排序:通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。 被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组合索引...原创 2020-05-04 21:49:06 · 130 阅读 · 0 评论 -
002 mysql物理结构
step1mysql物理结构 MySQL是通过文件系统对数据和索引进行存储的。 MySQL从物理结构上可以分为日志文件和数据索引文件。 MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。 日志文件采用顺序IO方式存储、数据文件采用随机IO方式存储。 顺序IO:记录首地址与偏移量,只存储和查询,记录速度快,只能...原创 2020-05-04 10:02:54 · 954 阅读 · 0 评论 -
001 mysql架构
step1 逻辑架构图 mysql的逻辑架构按层次分为连接层、SQL业务层、存储引擎层,最下层是文件系统;step2组件分析1.Connectors 连接器 mysql面向开发者的APIS,根据不同的开发环境及连接方式提供标准的驱动方式;例如,java开发常用的jdbc与odbc方式就是在选择connector连接器。 MySQL...原创 2020-04-20 14:06:06 · 235 阅读 · 0 评论