
MySQL
# MySQL
阿呆布衣酷
纯干货学习笔记:无盈利目的,只想帮自己成长
展开
-
徐无忌MySQL笔记:案例实战:如何实现MySQL数据库的读写分离?
徐无忌MySQL笔记:案例实战:如何实现MySQL数据库的读写分离?完成:第一遍1.理想的主从架构实现的效果是怎样的?主库负责所有读写操作,从库只实现对主库备份功能,这样的主从架构性价比是很低的我们所希望的主从架构是当写数据时,请求全部发到Master节点上当需要读数据时,请求全部发到Slave节点上并且多个Slave节点最好可以存在负载均衡,让集群的效率最大化2.读写分离架构实现主要有哪两种方式?方式一:读写分离代码层面实现分离逻辑主要是代码来判断读写请求,然后分别进行处理如果是读请原创 2020-07-19 13:20:50 · 251 阅读 · 0 评论 -
徐无忌MySQL笔记:案例实战:MySQL如何实现主从备份?
徐无忌MySQL笔记:案例实战:MySQL如何实现主从备份?完成:第一遍1.什么是数据库主从备份?主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失2.数据库主从备份的原理是什么?数据库有一个bin-log二进制文件,记录了所有执行的sql语句目标就是把主数据库(Master)的bin-log文件的sql语句复制到从数据库(Slave)上在从数据库(Slave)的relay-log重做日志文件中,重新执行一次这些sql语句3.数据库主从备份的过程是怎样的?步骤一:master的b原创 2020-07-19 12:56:20 · 198 阅读 · 0 评论 -
徐无忌MySQL笔记:案例实战:如何进行数据库优化并提升SQL查询性能?
徐无忌MySQL笔记:案例实战:如何进行数据库优化并提升SQL查询性能?完成:第一遍1.数据库优化哪两个目的?目的一:找出系统的瓶颈,提高MySQL数据库的整体性能目的二:优化结构设计和参数调整,提高用户的响应速度,同时还要节约系统资源,让系统满足更高的负荷2.数据库优化可以分为哪两类?数据库优化可以大体分为软优化和硬优化软优化一般是操作数据库即可,代码层面的硬优化则是服务器硬件、数据库参数设置、架构设计3.数据库软优化有哪几种?软优化一:SQL语句优化软优化二:在MySQL中尽量使用原创 2020-07-19 12:47:50 · 268 阅读 · 0 评论 -
徐无忌MySQL笔记:什么是数据库连接池?高并发场景下如何优化?
徐无忌MySQL笔记:什么是数据库连接池?高并发场景下如何优化?完成:第一遍1.什么是池技术?池技术(Pool)目的是为了优化服务器应用程序性能、提高执行效率、降低系统资源开销这里所说的池是一种广义上的池,比如数据库连接池、线程池、内存池、对象池等2.数据库连接有什么特点?特点一:数据库连接的创建是一个很耗时的操作特点二:对于web 应用,高并发很常见,在这种情况下,频繁的进行数据库连接操作势必占用很多的系统资源,网站的响应速度必定下降,严重的甚至会造成服务器的崩溃特点三:对于每一次数据库连原创 2020-07-19 12:25:00 · 453 阅读 · 0 评论 -
徐无忌MySQL笔记:MySQL中的慢查询是什么?如何进行监控、定位和分析的?
徐无忌深入JVM虚拟机笔记:MySQL中的慢查询是什么?如何进行监控、定位和分析的?完成:第一遍1.什么是慢查询?实际开发中,最直接性能指标就是SQL执行速度顾名思义,就是执行很慢的查询如何定义慢?SQL执行时间超过 long_query_time 参数设定的时间阈值(默认10s),就被认为是慢的,是需要优化的2.慢查询日志有什么作用?慢查询日志默认是不开启的如果需要优化SQL语句,可以开启这个功能,很容易知道哪些语句是需要优化的3.如何使用explain命令?就是explain+具体原创 2020-07-19 11:57:03 · 209 阅读 · 0 评论 -
徐无忌MySQL笔记:乐观锁VS悲观锁
徐无忌深入JVM虚拟机笔记:乐观锁VS悲观锁完成:第一遍1.数据库锁的具体实现分为哪两类?数据库锁的具体实现可以分为乐观锁和悲观锁2.什么是乐观锁?乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁在操作数据时,不加锁乐观锁在进行更新后,再去判断是否有冲突有冲突,更新失败;没冲突,更新成功CAS算法(Compare and Swap比较并交换)是乐观锁技术,当多个线程尝试原创 2020-07-19 11:43:09 · 217 阅读 · 0 评论 -
徐无忌MySQL笔记:MySQL数据库锁有几种?实现原理是什么?
徐无忌深入JVM虚拟机笔记:MySQL数据库锁有几种?实现原理是什么?完成:第一遍1.数据库并发控制通过什么实现?当多个事务并发方法对同一个数据进行操作通过数据库锁实现对数据库的并发控制。2.锁类型有哪三种?从对数据的操作粒度来划分,粒度就是同一维度下,数据统计的粗细程度,计算机领域中粒度指系统内存扩展增量的最小值3种锁:表锁行锁页锁3.表锁有哪些特点?特点一:粒度最大特点二:实现简单特点三:每一次将整个表锁定特点四:锁定粒度大导致资源争用概率非常高,并发程度大打折扣4.行锁原创 2020-07-19 11:13:13 · 291 阅读 · 0 评论 -
徐无忌MySQL笔记:数据库事务有哪些隔离级别?MySQL默认隔离级别是什么?
徐无忌深入JVM虚拟机笔记:数据库事务有哪些隔离级别?MySQL默认隔离级别是什么?完成:第一遍1.事务的隔离性具有哪四种隔离级别?隔离性保证了操作中的事务中不相互影响由低到高四种隔离级别:最低隔离级别:读取未提交内容Read Uncommitted会产生:脏读(即读取了未提交内容)次低隔离级别:读取已提交内容Read Committed会产生:不可重复读(即同一个事务中,两次读取的结果不一致)避免了:脏读次高隔离级别:可重复读Repeatable Read保证一个事务只能读取一个事务原创 2020-07-19 10:21:25 · 334 阅读 · 0 评论 -
徐无忌MySQL笔记:MySQL事务有什么特性? 完成:第一遍
徐无忌深入JVM虚拟机笔记:MySQL事务有什么特性?完成:第一遍1.什么是事务?事务:逻辑上的一组操作,要不全部成功,要不全部失败回滚事务保证了数据的一致性和完整性。2.事务有哪四大特性?如果一个数据库,声称支持事务的操作,那么该数据库必须要具备四个特性(ACID)A:原子性atomicC:一致性consistencyI:隔离性isolationD:永久性durability3.什么是事务特性的原子性atomic?原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚因此事务原创 2020-07-19 10:00:01 · 193 阅读 · 0 评论 -
徐无忌MySQL笔记:索引的使用规则
徐无忌深入JVM虚拟机笔记:索引的使用规则完成:第一遍1.索引的使用大致分为哪两类?单列索引联合索引2.单列索引?比如:SELECT uid FROM people WHERE name=‘AdByCool’AND gender=‘Man’步骤一:对name列建立索引,这样就把范围限制在name=‘AdByCool’ 的结果集上步骤二:之后再对这个结果集进行扫描,寻找满足gender=‘Man‘得到最终结果SELECT uid FROM people WHERE name=‘xuwuj原创 2020-07-19 09:47:04 · 196 阅读 · 0 评论 -
徐无忌MySQL笔记:聚簇索引和非聚簇索引有什么区别?
徐无忌深入JVM虚拟机笔记:聚簇索引和非聚簇索引有什么区别?完成:第一遍1.聚簇索引和非聚簇索引怎么区分?聚簇索引与非聚簇索引是从文件存储的角度进行划分聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据非聚簇索引:将数据与索引进行分开存储2.聚簇索引一般如何使用?一个表仅有一个聚簇索引,默认是主键聚簇索引性能最好而且具有唯一性,所以非常珍贵,必须慎重设置。一般要根据这个表最常用的SQL查询方式来进行选择,某个字段作为聚簇索引,或组合聚簇索引,这个要看实际情况3.什么是InnoDB原创 2020-07-19 09:33:56 · 333 阅读 · 0 评论 -
徐无忌MySQL笔记:索引的底层数据结构是什么?为什么这样设计?
徐无忌MySQL笔记:索引的底层数据结构是什么?为什么这样设计?完成:第一遍1.索引的底层数据结构是什么?MySQL通过B+树来实现索引2.B+树有哪些特点?特点一:B+ 树是n叉树,每一级可以存储多个节点,降低了树的高度特点二:非叶子节点只存储key,不存储数据特点三:叶子节点存储key和数据特点四:叶子节点的内部,存在多条数据,根据索引进行了有序排列,满足了范围查找特点五:叶子节点之间通过一个双向链表,进行相互连接特点六:索引失效的情况下,可以按照叶子节点进行顺序遍历3.索引关于I原创 2020-07-18 20:08:55 · 307 阅读 · 0 评论 -
徐无忌MySQL笔记:什么是索引?MySQL有哪几种索引?
徐无忌MySQL笔记:什么是索引?MySQL有哪几种索引?完成:第一遍1.什么是索引?索引用于快速找出在某行数据,如果不使用索引,MySQL必须从第一条记录开始读完整个表,直到找出相关的行表越大,查询数据所花费的时间就越多,通过索引MySQL能够快速到达一个位置去搜索数据文件,节省很大一部分时间2.索引有哪些特点?特点一:MySQL可以给任意字段设置索引特点二:创建索引和维护索引要耗费时间,并且随着数据量的增加所耗费的时间也会增加,当对表中的数据进行增加、删除、修改时,索引也需要动态的维护,降原创 2020-07-18 19:28:29 · 217 阅读 · 0 评论 -
徐无忌MySQL笔记:MySQL的MyISAM和InnoDB两种存储引擎有什么区别?
徐无忌MySQL笔记:MySQL的MyISAM和InnoDB两种存储引擎有什么区别?完成:第一遍1.什么是MyISAM数据库引擎?MyISAM是MySQL5.5版本以前默认的数据库引擎Innodb弥补了MyISAM的一些不足,在5.5版本后成为默认数据库引擎,逐渐取代了MyISAM2.MyISAM数据库引擎有哪些特点?特点一:MyISAM强调性能,每次查询具有原子性,不提供事务支持特点二:只支持表级锁,select,update,delete,insert语句都会给整个表自动加锁。MyISAM原创 2020-07-18 18:57:59 · 229 阅读 · 0 评论