自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 Mysql全局优化以及8.0新特性详解

补充一点配置文件my.ini或my.cnf的全局参数:假设服务器配置为:CPU:32核内存:64G下面参数都是服务端参数,默认在配置文件的 [mysqld] 标签下连接的创建和销毁都需要系统资源,比如内存、文件句柄,业务说的支持多少并发,指的是每秒请求数,也就是QPS。一个连接最少占用内存是256K,最大是64M,如果一个连接的请求数据超过64MB(比如排序),就会申请临时空间,放到硬盘上。如果3000个用户同时连上mysql,最小需要内存3000。

2023-10-16 23:01:38 233 1

原创 binlog二进制归档日志

binlog二进制日志记录保存了所有执行过的修改操作语句,不保存查询操作。如果 MySQL 服务意外停止,可通过二进制日志文件排查,用户操作或表结构操作,从而来恢复数据库数据。启动binlog记录功能,会影响服务器性能,但如果需要恢复数据或主从复制功能,则好处则大于对服务器的影响。

2023-09-27 21:30:32 31

原创 Mysql锁机制详解

因为在RR隔离级别下,需要解决不可重复读和幻读问题,所以在遍历扫描聚集索引记录时,为了防止扫描过的索引被其它事务修改(不可重复读问题) 或 间隙被其它事务插入记录(幻读问题),从而导致数据不一致,所以MySQL的解决方案就是把所有扫描过的索引记录和间隙都锁上,这里要注意,并不是直接将整张表加表锁,因为不一定能加上表锁,可能会有其它事务锁住了表里的其它行记录。但是,Innodb的行级锁定同样也有其脆弱的一面,当我们使用不当的时候,可能会让Innodb的整体性能表现不仅不能比MYISAM高,甚至可能会更差。

2023-09-27 20:29:44 29

原创 Mysql内核查询成本计算

我们的表经常使用的MyISAM、InnoDB存储引擎都是将数据和索引都存储到磁盘上的,当我们想查询表中的记录时,需要先把数据或者索引加载到内存中然后再操作。这个从磁盘到内存这个加载的过程损耗的时间称之为I/O成本。MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询。读取以及检测记录是否满足对应的搜索条件、对结果集进行排序等这些操作损耗的时间称之为CPU成本。1.0、0.2这些数字称之为成本常数,这两个成本常数我们最常用到,当然还有其他的成本常数。

2023-09-14 23:06:18 30 1

原创 高性能表结构设计

数据结构:B+树,HASH,全文索引存储方式:聚集索引,非聚集索引业务:主键索引,普通索引,单列索引,所列多余,唯一索引,非唯一索引密集索引:聚集索引,将所有的数据都放在该索引下稀疏索引:辅助索引,索引中只存放ID值,查找别的数据需要通过ID去聚集索引拿覆盖索引通过二级索引树就能够拿到所有需要使用的字段,避免回表索引带来的代价空间上的代价索引是存在磁盘上的,创建索引也会占用空间时间上的代价索引需要维护,当增加、修改、删除时,mysql都会对索引进行维护。

2023-09-14 22:59:39 25 1

原创 深入理解MVCC与Buffer Pool缓存机制

MVCC,BufferPool,undo,redo

2023-09-12 22:43:45 28 1

原创 深入理解mysql事务隔离级别与锁机制

概述我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制,用一整套机制来解决多事务并发问题。事务是由一组SQL语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。原子性(Atomicity) :事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全

2023-09-11 21:52:22 30

原创 Mysql实战优化2

可以优化为所以这种改写得满足以下两个条件:主键自增且连续结果是按照主键排序的。

2023-09-11 21:27:02 24

原创 MySQL实战优化1

1、MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序。index效率高,filesort效率低。2、order by满足两种情况会使用Using index。order by语句使用索引最左前列。使用where子句与order by子句条件列组合满足索引最左前列。3、尽量在索引列上完成排序,遵循索引建立(索引创建的顺序)时的最左前缀法则。4、如果order by的条件不在索引列上,就会产生Using filesort。

2023-09-07 23:10:29 22 1

原创 sql底层执行原理

mysql底层分为两部分:service,引擎层service:包括连接器,缓存,语法分析器、优化器、执行器引擎层:架构模式是插件式的,默认的存储引擎为innoDB连接器:负责和客户端建立连接,在完成经典的TCP握手后,会通过账号密码验证身份,验证身份通过后会从表中查询用户所拥有的权限。连接成功后会将用户权限信息存储到当前连接的session中,每次有效连接时间为默认八小时,在此期间即使别的用户修改了当前用户的权限也不会影响到当前会话,修改完成后只有创建新的链接才会使用新的权限。

2023-09-06 23:23:26 44

原创 Explain详解和索引优化

explain关键字的使用以及索引使用的最佳实践推荐

2023-09-06 22:51:36 44 1

原创 Mysql底层数据结构及算法

mysql底层数据结构B+树, 存储引擎:MyIsAm, InnoDB, 索引:聚集索引,非聚集索引,联合索引

2023-09-05 23:17:24 111

原创 ArrayList和LinkedList的区别

如果不是进行尾部插入的话还会涉及到已有元素的移动(将原来的元素全部往后复制一份然后插入新的数据)。LinkedList底层是链表,可以存储在分散的内存中,适合做数据的插入以及删除操作,不适合查询,遍历只能使用iterator不能使用for循环,因为每次for循环通过get(i)获取指定元素都需要从头往后边遍历一遍,性能消耗极大,不要试图通过indexof方法获取索引,并利用其进行遍历,因为使用indexOf对List进行了遍历,没有的话会遍历整个列表。

2023-08-31 23:28:13 39

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除