自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 yii执行流程

3-解析请求路由并加载控制器实例处理。1-入口web/index.php。2-加载应用配置及运行应用实例。4-渲染页面及返回数据。

2023-12-05 10:39:03 51

原创 php 责任链模式

学习。

2023-11-07 10:51:09 68

原创 Elasticsearch php

问题: 不足1个词的搜不到, 如: {"match_phrase": {"brandName": "bran"}}, {"match_phrase": {"brandName": "10"}}//,"_source":["id", "brandName", "utime", "productName"]//设置查询字段,就是查询结果中要返回的字段。//,{"range": {"utime": {"gte":500,"lte":1682045599}}}, //`>=`和`<=`查询。

2023-11-06 17:07:58 120

原创 mysql join什么时候用

即如果可以使用 Index Nested-Loop Join 算法,也就是说可以用上被驱动表上的索引,其实是没问题的;如果使用 Block Nested-Loop Join 算法,扫描行数就会过多。尤其是在大表上的 join 操作,这样可能要扫描被驱动表很多次,会占用大量的系统资源。所以这种 join 尽量不要用。使用 join 语句,性能比强行拆成多个单表执行 SQL 语句的性能要好;如果使用 join 语句的话,需要让小表做驱动表 但是结论前提是“可以使用被驱动表的索引”

2023-11-06 16:55:18 59

原创 mysql 主备延迟

1、主备延迟,就是在同一个事务在备库执行完成的时间和主库执行完成的时间之间的差值,包括主库事务执行完成时间和将binlog发送给备库,备库事务的执行完成时间的差值。每个事务的seconds_behind_master延迟时间,每个事务的 binlog 里面都有一个时间字段,用于记录主库上的写入时间,备库取出当前正在执行的事务的时间字段的值,计算它与当前系统时的差值。2、主备延迟的来源①首先,有些部署条件下,备库所在机器的性能要比主库所在的机器性能差,原因多个备库部署在同一台机器上,大量的查询会导致io资源

2023-11-06 16:53:22 32

原创 mysql 字段发生了转换,导致本该使用索引而没有用到索引

(如果驱动表的字符集比被驱动表得字符集小,关联列就能用到索引,如果更大,需要发生隐式编码转换,则不能用到索引,latin<gbk<utf8<utf8mb4)但字段id不会进行隐式转换。1.条件字段函数操作。3.隐式字符编码转换。

2023-11-06 16:50:46 44

原创 mysql sortbuff

2>该方式会造成随机IO,在MySQL5.6提供了MRR的机制,会将辅助索引匹配记录的主键取出来在内存中进行排序,然后在回表。1.通过控制排序的行数据的长度来让sort_buffer中尽可能多的存放数据,max_length_for_sort_data。1.造成sort_buffer中存放不下很多数据,因为除了排序字段还存放其他字段,对sort_buffer的利用效率不高。2.只将需要排序的字段和主键读取到sort_buffer中,并按照排序字段进行排序。2.按照排序字段进行排序。

2023-11-06 16:48:59 121

原创 MySQL抖一下是什么意思?

所以,无论是你的查询语句在需要内存的时候可能要求淘汰一个脏页,还是由于刷脏页的逻辑会占用 IO 资源并可能影响到了你的更新语句,都可能是造成你从业务端感知MySQL“抖”了一下的原因。随机写我的理解是,这次写磁盘的那个扇区和上一次没啥关系,需要重新定位位置,机械运动是很慢的即使不是机械运动重新定位写磁盘的位置也是很耗时的。写redolog是顺序写的,先写redolog等合适的时候再写磁盘,间接的将随机写变成了顺序写,性能确实会提高不少。当内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存页为“脏页”

2023-10-27 15:44:37 24 1

原创 mysql怎么给字符串字段加索引?

4:创建 hash 字段索引,查询性能稳定,有额外的存储和计算消耗,跟第三种方式一样,都不支持范围扫描。这种方式用于前缀区分度不高后缀区分度高的场景,目的还是要提高索引的区分度,使用这种方式不适合范围检索。这种方式最简单,如果性能没问题,我会这么创建,简单直接且存储空间的费用越来越低。2:创建前缀索引,节省空间,但会增加查询扫描次数,并且不能使用覆盖索引;3:倒序存储,再创建前缀索引,用于绕过字符串本身前缀的区分度不够的问题;1:直接创建完整索引,这样可能比较占用空间;

2023-10-27 15:42:47 85 1

原创 MySQL选错索引

优化器认为使用那个索引检索数据的速度比较快是一个需要各种因素综合评估的事情,比如:是否使用临时表、是否排序、扫描的行数多少、回表的次数等,文中的例子优化器判断失误的主要原因是扫描行数的判断存在误差,因为这个信息是采样评估得到的。我们认为使用K索引检索的速度会更快的,但是MySQL没有使用,决定使用什么索引是由Server层的优化器来决定的,她也是想选择最佳的方案来检索数据的,不过他也是人写的程序也是存在bug的。3-3:新建更合适的索引或者删除不合适的索引,是一个思路。3:MySQL选错索引怎么破?

2023-10-27 15:42:09 28 1

原创 mysql 删了表数据为什么表大小没变

由于session A开启了一致性读,目的为了保证session A的可重复读,insert只能。如果delete和insert中间的间隔相对较小,purge线程还没有来得及清理该记录。如果主键相同的情况下,新插入的insert会沿用之前删除的delete的记录的空间。另起炉灶,不能占用delete的空间。由于mysql是使用标记删除来删除记录的,并不从索引和数据文件中真正的删除。1.为什么没有session A,session B扫描的行数是1W。由于相同的数据量以及表大小,所以导致了统计信息没有变化。

2023-10-27 15:41:15 243 1

原创 mysql-changebuff/redolog/binlog

merge 的执行流程是这样的: 从磁盘读入数据页到内存(老版本的数据页);当需要更新一个数据页时,如果数据页在内存中就直接更新,而如果这个数据页还没有在内存中的话,在不影响数据一致性的前提下,InnoDB 会将这些更新操作缓存在 change buffer 中,这样就不需要从磁盘中读入这个数据页了。这个问题的答案是不会丢失虽然是只更新内存,但是在事务提交的时候,我们把 change buffer 的操作也记录到 redo log 里了,所以崩溃恢复的时候,change buffer 也能找回来。

2023-10-27 15:39:48 114 1

原创 mysql-索引

3、联合索引:根据创建联合索引的顺序,以最左原则进行where检索,比如(age,name)以age=1 或 age= 1 and name=‘张三’可以使用索引,单以name=‘张三’ 不会使用索引,考虑到存储空间的问题,还请根据业务需求,将查找频繁的数据进行靠左创建索引。1、覆盖索引:如果查询条件使用的是普通索引(或是联合索引的最左原则字段),查询结果是联合索引的字段或是主键,不用回表操作,直接返回结果,减少IO磁盘读写读取正行数据。普通索引先搜索索引拿到主键值,再到主键索引树搜索一次(回表)

2023-10-27 15:36:18 24 1

原创 Docker下搭建PHP Swoole开发运行环境方案

注:docker-compose只能用来做简单的服务编排,并不能像K8S那样做到大型可靠的、可自动扩缩容的服务编排,因此,docker-compose仅适用于开发环境或小型的正式环境。Nginx在整个体系中主要承担的作用是解析完整的HTTP协议,此处请注意,Nginx如果只是作为反向代理服务或静态文件服务的时候,其性能是十分高的,不需要担心Nginx代理会影响Swoole的性能。设置好加速地址之后,即可进入Docker Hub选择自己想要使用的镜像,无需登陆,直接在搜索栏搜索即可。

2023-10-25 17:10:32 821 2

空空如也

空空如也

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

TA关注的人

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