Mysql
文章平均质量分 82
Mysql
PasserBy*_*
路漫漫其修远兮,吾将上下而求索。
展开
-
MySql中mvcc学习记录
mvcc机制原创 2022-08-07 15:50:00 · 215 阅读 · 0 评论 -
MVCC实现原理
大纲前提概要什么是MVCC 什么是当前读和快照读?当前读,快照读和MVCC的关系MVCC实现原理隐式字段 undo日志Read View(读视图) 整体流程MVCC相关问题RR是如何在RC级的基础上解决不可重复读的? RC,RR级别下的InnoDB快照读有什么不同?前提概要什么是MVCCMVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访.转载 2021-06-20 17:13:07 · 155 阅读 · 0 评论 -
mysql日志
一: mysql日志日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。 在这其中,我们重点需要关注的是 binlog (主从同步 ) redo log(重做日志) undo log(回滚日志),接下来详细介绍这三种日志。逻辑日志和物理日志首先按照日志的记录方式分为:逻辑日志和物理日志逻辑日志:可以简单理解为记录的就是sql语句 。 物理日志:mysql 数据最终是保存在数据页中的,物原创 2021-06-20 16:00:39 · 4647 阅读 · 0 评论 -
数据库锁机制实现隔离
面对高并发加锁可以从两种层面来考虑:第一种是代码层面的锁如(jvm中的syncrinized,jdk中的lock锁,redis的分布式锁) 第二种是数据库层面的锁如:(乐观锁和悲观锁) 当然除了用加锁的方式也可以用其他方式解决如(使用缓存,横向扩展机器,分布式,加内存等等)下面介绍:乐观锁、悲观锁(共享锁S和排他锁X)区别1.乐观锁不是数据库自带的,需要我们自己去实现。乐观锁是指...原创 2018-04-01 16:51:59 · 289 阅读 · 0 评论 -
mysql的优化策略有哪些
1.数据库层面主从备份,读写分离 垂直分库分表或者水平分库分表 必要时可以编写存储过程 搭建数据库集群服务,增加服务器物理内存 给数据库增加缓存系统,把热数据缓存到内存中,如果内存缓存中有要请求的数据就不再去数据库中返回结果,提高读性能。缓存实现有本地缓存和分布式缓存,本地缓存是将数据缓存到本地服务器内存中或者文件中,速度快。分布式可以缓存海量数据,扩展容易,主流的分布式缓存系统有me...原创 2019-09-04 15:42:01 · 630 阅读 · 0 评论 -
数据库索引原理以及BTree,B+Tree
1.索引的种类众所周知,索引类似于字典的目录,可以提高查询的效率。 索引从物理上可以分为:聚集索引也叫聚簇索引。,非聚集索引也叫非聚簇索引。 从逻辑上可以分为:普通索引,唯一索引,主键索引,联合索引,全文索引 如果不创建索引,系统会自动创建一个隐含列作为表的聚集索引。(用户不可见)而MySQL里主键就是聚集索引 除了聚集索引以外的索引都是非聚集索引 如上面的普通索引,唯一索引,全文索...原创 2019-09-04 11:51:29 · 724 阅读 · 0 评论 -
MySQL慢查询-开启慢查询
一、简介 开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。二、参数说明 slow_query_log 慢查询开启状态 slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) long_query_time 查询超过多少秒才记录...原创 2018-08-20 16:18:55 · 1732 阅读 · 0 评论 -
mysql查询过程
1、mysql基本架构以及查询流程 MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。 只要是你之前执行过的语句,都会在内存里面用key-value形式存储着。查询的时候就会拿着语句先去缓存中查询,如果能够命中就返回缓存的value,如果不命中就执行后面的阶段。 只要对表有任何的更新,这个表的所有查询缓存就会全部被清空 缓存在MySQL8....原创 2020-04-10 15:24:01 · 428 阅读 · 0 评论 -
mysql分区表
1、当mysql单表的数据库过大时,数据库的访问速度会下降,“数据量大”问题的常见解决方案是“水平切分”2、mysql常见的水平切分方式有哪些?答:分库分表,分区表3、什么是mysql的分库分表?答:把一个很大的库(表)的数据分到几个库(表)中,每个库(表)的结构都相同,但他们可能分布在不同的mysql实例,甚至不同的物理机器上,以达到降低单库(表)数据量,提高访问性能的目的。分库分表往往...原创 2020-03-04 16:21:32 · 248 阅读 · 0 评论 -
数据库中间件
1、现在常用的有两种,第一个是当当网开源的client端的sharding-jdbc,第二个就是阿里的proxy端的mycat,两者对比如下:原创 2020-02-18 21:19:23 · 173 阅读 · 0 评论 -
mysql 中索引的问题
1、mysql使用索引口诀(demo示例)全值匹配我最爱,最左前缀要遵守;带头大哥不能死,中间兄弟不能断;索引列上少计算,范围之后全失效;like百分写最后,覆盖索引不写星;join连接类型同,order条件非表达式;不等空值or和'0/1',索引失效要少用。2、可以使用mysql的explain来检查自己的sql语句是否使用了索引 explain用法和结果的含义如下:...转载 2020-02-17 15:41:35 · 177 阅读 · 0 评论 -
mysql编写存储过程
1.使用navicat查看所用的存储过程命令SHOW procedure STATUS查看存储过程详情SHOW CREATE PROCEDURE test_procedure12.编写无参存储过程CREATE PROCEDURE `test_procedure1`()BEGIN #接受一个参数的存储过程 DECLARE uid INTEGER; SET uid=5;...原创 2019-08-17 17:34:18 · 1375 阅读 · 0 评论 -
关于数据库mysql连接超时以及连接池超时的一些问题
1.本文主要整理关于mysql的一些问题2.首先mysql服务器默认的连接超时和数据库连接超时是两码事,不能混为一谈3.什么是数据库连接超时呢? 答:数据库连接超时是指当服务连接到数据库但不对其做任何操作时等待到一定时间之后 这个链接就会与数据库断开,当再次对数据库进行操作时会报数据库连接超时或者连接关闭异常 mysql的连接默认最长等待时间为28800s也...原创 2019-06-12 21:23:57 · 8605 阅读 · 0 评论 -
数据库事务4种隔离级别及7种传播行为
一:数据库的事物隔离级别与传播行为总结:脏数据 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据(Dirty Data),依据脏数据所做的操作可能是不正确的。不可重复读 在一个事务...原创 2018-04-01 16:41:13 · 18468 阅读 · 1 评论