- 博客(100)
- 资源 (2)
- 收藏
- 关注
原创 Redis 的底层数据结构和IO模型
Redis 的底层数据结构一共有 6 种,分别是简单动态字符串、双向链表、压缩列表、哈希表、跳表和整数数组。
2024-03-16 20:50:23 923
原创 理解 MySQL join 语句的执行过程
不论是在原表上加索引,还是用有索引的临时表,我们的思路都是让 join 语句能够用上被驱动表上的索引,来触发 BKA 算法,提升查询性能。
2024-03-15 23:40:49 1568
原创 MySQL order by 语句执行流程
MySQL order by 可以使用 全字段排序 和 rowid 排序,order by 的执行成本比较高
2024-03-14 23:42:22 780
原创 MySQL删除数据 文件大小不变的原因以及处理空洞问题
如果要收缩一个表,只是 delete 掉表里面不用的数据的话,表文件的大小是不会变的,需要通过 alter table 命令重建表,才能达到表文件变小的目的。Online DDL 的方式可以考虑在业务低峰期使用
2024-03-14 22:50:46 316
原创 一条 sql 语句可能导致的表锁和行锁以及死锁检测
锁MDL当对一个表做增删改查操作的时候,加 MDL 读锁;当要对表做结构变更操作的时候,加 MDL 写锁行锁两阶段锁协议死锁和死锁检测。
2024-03-12 22:54:43 1133 2
原创 MySQL 事务的原理以及长事务的预防和处置
事务在实现上,数据库里面会创建一个视图,访问的时候以视图的逻辑结果为准。在“可重复读”隔离级别下,这个视图是在事务启动时创建的,整个事务存在期间都用这个视图。在“读提交”隔离级别下,这个视图是在每个 SQL 语句开始执行的时候创建的。
2024-03-11 22:35:21 525
原创 一条 SQL 更新语句如何执行的
Server 层存储引擎层总流程查询语句连接器查询缓存分析器优化器执行器更新语句redo log(节省的是随机写磁盘的 IO 消耗(转成顺序写))InnoDB 引擎物理日志循环写binlogserver层逻辑日志追加写入两阶段提交为了知道,mysql 中一条 sql 语句是如何执行的,先讲一下 mysql 的宏观分层以及如何执行查询语句.MySQL 宏观上分为Server 层和。
2024-03-11 22:04:11 1056
原创 redis scan命令
使用redis的scan命令组,scan、hscan、sscan、zscan在批量操作redis key时可以避免阻塞redis
2022-11-28 15:42:33 2893
原创 php整合apollo配置中心——k8s从入门到高并发系列教程(十六)
ApolloClient类负责和apollo上述两个接口打交道,把拉取的apollo配置信息写到本地文件,用到了并发curl请求特性。Config类对 illuminate/config 基础上,把apollo的配置信息整合到自己管理的配置数组中,进行读取和设置。helpers.php封装一个小助手函数来读取apollo配置中心的内容(也有可能是覆盖apollo的环境变量)执行完后可以在控制台看到如下输出,可以看到config service地址是。打开如下地址,可以看到apollo管理界面。
2022-10-09 14:04:52 931
原创 phpfpm和nginx配置——k8s从入门到高并发系列教程(十五)
基于高性能的需求,对nginx和phpfpm的参数进行调优设置,参照配置文件,不懂的看下面解释
2022-10-06 16:03:15 1213
原创 APM性能监测工具skywalking——k8s从入门到高并发系列教程(十三)
为了找出响应速度慢,超时失败率高的接口,并定位出性能瓶颈的卡壳所在,我们需要一个apm性能监测工具。php是一个单进程的语言,性能卡壳主要就在于myql、redis、memcache等数据库操作以及curl等微服务调用过程,我们需要一个工具,能够帮助我们系统的看到整个接口的请求——响应过程,找出过程中的耗时点,有针对性的做出优化。
2022-09-20 00:27:11 1441
原创 安装opcache和apcu——k8s从入门到高并发系列教程(十二)
安装opcache和apcu。opcache可以避免每次请求都要读取php脚本文件生成opcode的过程。而apcu可以在多次不同的请求之间共享一些信息,避免每次请求查询这些公共信息造成额外的网络请求和数据库查询
2022-09-16 08:48:49 578
原创 supervisor进程管理 ——k8s从入门到高并发系列教程(十一)
使用supervisor管理nginx phpfpm nignx-exporter phpfpm-exporter进程
2022-09-15 08:56:45 1163
原创 k8s容器网络性能调优 ——k8s从入门到高并发系列教程(十)
有一半的请求接口返回了Yar_Client_Transport_Exception curl exec failed,“Timeout was reached”。 出现这个问题的原因是 yar框架底层基于curl,而并没有对curl进行优化导致部分请求被丢包。我们需要先启动一个初始化容器,在该容器中初始化网络参数优化docker容器的网络性能
2022-09-12 17:40:05 2407
原创 prometheus/grafana监控数据收集与展示——k8s从入门到高并发系列教程(九)
基于prometheus和grafana建立我们的检测系统。从docker容器监控、phpfpm监控、nginx监控图标中找出问题的所在
2022-09-12 10:52:15 1990
原创 apisix网关、JMeter压测 —— k8s从入门到高并发系列教程 (八)
面向外部的大流量的网络请求,我们需要一个api网关——apisix。这样的demo能不能开放出来给用户使用?我们先用JMeter来压测一下吧
2022-09-02 00:54:22 1070
原创 kustomize/kubectl自动镜像部署&&互联网企业规范化上线流程(下) —— k8s从入门到高并发系列教程 (七)
k8s持续的把最新镜像的地址更新到yaml文件中并部署到线上
2022-09-01 00:51:03 961
原创 .gitlab-ci.yaml自动镜像打包&&互联网企业规范化上线流程(上) —— k8s从入门到高并发系列教程 (六)
在实际企业当中,当分支即将被合并或已经被合并到特定环境后,是由 cicj 流程监听分支合并事件,根据情况决定对代码进行检查是否允许合并,当允许合并后,启动一个基于docker的镜像,把项目源代码克隆进来后,结合对应环境的配置信息,利用企业的基础镜像,打包成一个可以在线上部署的镜像,并推送到企业的私有镜像仓库中......
2022-08-28 23:04:34 1153
原创 常用开发工具:php_codesniffer代码规范检查&修复、phpstan语法检查、phpunit单元测试 —— k8s从入门到高并发系列教程 (五)
本教程通过安装squizlabs/php_codesniffer 进行代码规范的检查与修复,phpstan/phpstan 进行语法报错的检查,phpunit/phpunit 进行单元测试
2022-08-27 12:25:39 2303
原创 yaf && yar微服务/hprose微服务 镜像初始化 —— k8s从入门到高并发系列教程 (四)
本教程带你初始化yaf框架,并基于yar框架打包两个微服务代码,在容器间调用
2022-08-26 08:39:59 385
原创 nginx-php镜像安装常用软件 —— k8s从入门到高并发系列教程 (三)
以笔者公司使用的 yaf+yar 的组合进行mvc分离和微服务调用,同时给php安装企业正常运行的基础扩展,包括 mysql、redis、memcached、kafka 以及php包管理器 composer
2022-08-25 23:05:20 927
原创 php和nginx镜像合并 && 代码打包到镜像 —— k8s从入门到高并发系列教程 (二)
以php-fpm作为基础镜像,安装nginx后,打包配置文件和源代码形成新的镜像,并测试运行。
2022-08-24 09:09:09 1314
原创 手把手教你部署nginx+php —— k8s从入门到高并发系列教程 (一)
使用nginx 和 php:fpm-7.2 两个镜像搭建nginx+php环境
2022-08-24 08:13:17 839 2
hadoop 2.9.1 native包 含snappy
2018-05-21
rubyPHP高性能的PHP框架
2016-05-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人