mysql
文章平均质量分 91
MySQL知识
加班狂魔
男的,程序员
展开
-
MySql学习(一)mysql基础架构
mysql架构篇mysql基础架构图客户端客户端负责发出SQL(结构化查询语言)。SQL层负责对SQL进行进一步处理Management Services & Utillties(了解)提供一些管理工具Connection Pool(了解)管理用户连接,包括下面几个组件Authentication 授权管理Thread Rouse 线程管理Connection ...原创 2020-02-26 09:14:41 · 409 阅读 · 0 评论 -
MySql学习(二)MySql物理结构
MySql的物理结构MySQL是通过文件系统对数据和索引进行存储的。MySQL从物理结构上可以分为日志文件和数据索引文件。MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。日志文件采用顺序IO方式存储、数据文件采用随机IO方式存储。日志文件日志文件分为错误日志(errorlog)二进制日志(bin log)通用查询日志(general ...原创 2020-02-27 09:36:54 · 1022 阅读 · 0 评论 -
MySql学习(三)索引
文章目录索引是什么优势劣势索引原理分析索引的存储结构B-TREE和B+TREE非聚集索引(MyISAM)主键索引辅助索引(非主键索引)聚集索引(InnoDB)主键索引辅助索引一些名词解释回表索引覆盖索引的选择索引失效不符合最左前缀原则索引是什么官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引的优势和劣势优势可...原创 2020-03-01 21:14:00 · 459 阅读 · 0 评论 -
MySql学习(四)锁的基础知识
文章目录MySql锁的介绍按锁的功能划分共享读锁排他写锁按锁的粒度划分全局锁(由MySql layer层也就是之前说的sql server层来实现)实现方式使用场景数据库只读状态的危险性表锁表锁(由MySql layer层来实现)表锁的添加查看表锁释放表锁表锁的使用场景元数据锁(meta data lock 由MySql layer层来实现)意向锁(存储引擎层实现)行级锁(由存储引擎层来实现)行级...原创 2020-03-06 16:40:40 · 297 阅读 · 0 评论 -
Mysql学习(五)InnoDB架构分析
内存结构Innodb磁盘文件innodb磁盘文件分为系统表空间用户表空间.frm表元数据文件系统表空间(ibdata文件)所有的表共享的表空间存放下面的内容数据字典:存放数据库相关信息,也就是 InnoDB 表的元数据double write buffer: 双写缓存,防止页锻炼,解决部分写失败insert buffer :内存insert buffer数据,周期性写...原创 2020-03-19 23:28:49 · 221 阅读 · 0 评论 -
MySql学习(专项篇)内存数据落盘
整体思路分析InnoDB内存缓冲池中的数据page要完成持久化的话,是通过两个流程来完成的,一个是脏页落盘;一个是预写redo log日志。保证数据的持久性当缓冲池中的页的版本比磁盘要新时,数据库需要将新版本的页从缓冲池刷新到磁盘。但是如果每次一个页发送变化,就进行刷新,那么性能开发是非常大的,于是InnoDB采用了Write AheadLog(WAL)策略和Force Log...原创 2020-03-25 23:36:34 · 2186 阅读 · 2 评论 -
Mysql学习(六)InnoDB事务原理分析
事务四个特性原子性(atomicity)一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。InnoDB是如何实现原子性的一致性(consistency)事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。隔离性(isolation)一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执...原创 2020-04-04 11:55:04 · 310 阅读 · 0 评论 -
MySql学习(专项篇)MVCC
文章目录MVCC(Mutil-Version Concurrency Control)MVCC的优点MVCC中读操作快照读当前读一致性非锁定读InnoDB的MVCC实现MVCC(Mutil-Version Concurrency Control)MVCC是用于数据库提供并发访问控制的并发控制技术。与MVCC相对的,是基于锁的并发控制, Lock-Based Concurrency Contr...原创 2020-04-04 18:34:23 · 222 阅读 · 0 评论 -
Mysql学习(七)InnoDB行锁的原理分析
一条简单的SQL语句加锁分析SQL1select * from t1 where t1.id = 1;问题:上述SQL语句加锁么,加的是什么锁?答案:分析加锁需要考虑当前的隔离级别,该语句在串行化下MVCC会降级成Lock-Based CC,是加锁的,加的是读锁。在其他三种隔离级别下,由于MVCC的快照读,所以是不加锁的。SQL2delete from t1 where t1.i...原创 2020-04-05 19:02:29 · 1239 阅读 · 0 评论 -
Mysql学习(八)性能优化
文章目录服务器层面的性能优化(了解)服务器硬件优化CentOS系统针对mysql的参数优化内核相关参数(/etc/sysctl.conf)增加资源限制(/etc/security/limit.conf)磁盘调度策略服务器层面的性能优化(了解)这一部分了解就可以了,一般程序员更多的是在表的设计上以及SQL语句编写上进行优化服务器硬件优化提升硬件设备,例如选择尽量高频率的内存(频率不能高于主板...原创 2020-05-14 14:39:53 · 270 阅读 · 0 评论