- 博客(34)
- 问答 (1)
- 收藏
- 关注
原创 PHP面试题——字符串操作
这些函数通常直接将结果输出到浏览器或进行格式化。echo / print 语言结构,输出一个或多个字符串。printf 输出格式化字符串。sprintf 将格式化字符串写入变量,而不是直接输出。vprintf 输出格式化字符串,但参数以数组形式提供。vsprintf 将格式化字符串写入变量,参数以数组形式提供。print_r 打印关于变量的易于理解的信息(用于数组、对象等)。var_dump 显示关于一个或多个表达式的结构信息(包括类型和值)。
2025-10-20 12:01:19
925
原创 .m3u8
前端从服务器获取一个.m3u8文件,是一种视频播放列表文件,文件大致内容是存放.ts文件地址。通过该方法,播放器不必一次性下载整个视频,可以实现用户无感观看,一边下载一边播放。播放器拿到.m3u8文件后,按顺序加载.ts文件。视频被分成很多个 10 秒钟的 .ts 小片段。播放时,播放器按顺序加载这些 .ts 文件播放。这是一个 HLS 播放列表(#EXTM3U)ts文件可理解为视频的切片。
2025-07-24 15:40:44
286
原创 go-文件缓存与锁
但出现一个问题:文件更新后,该变量的值依然是文件更新之前的内容,需要重新运行go包,而cookie随时可能失效而去更新,频繁重启这显然不现实。频繁读取文件,性能不佳,故在go包中创建了一个map全局变量存储文件内容,只有键不存在时才去读取文件。若不一致,则加写锁,再次检查修改时间,防止获取到写锁之前,文件已经修改。每次读取加读锁,并检查实际文件的修改时间,若与map中的值一致,则直接返回map中文件内容。依旧采用map存储文件内容,但map的值为:1、文件的内容,2、文件的修改时间。
2025-03-10 17:15:03
355
原创 nginx-访问异常
有A、B两台服务器,使用相同的主域名,SSL证书相同,子域名不同。当访问B时,获取到的A的内容。虽然解决,但还是没有完全搞清楚为什么会访问到A。了解的小伙伴请赐教。(其他小伙伴可以查看一下DNS解析是否正常,我这边没有办法查看)
2024-11-26 16:44:21
438
原创 Gorm--Scan
在 Gorm 中,Scan 是一个用于将查询结果映射到自定义结构体或变量的函数。与 Find 或 First 不同,Scan 允许你将查询结果存储到与数据库模型不完全匹配的结构体中。下划线与驼峰命名法的转换:Gorm 会尝试将查询结果中的下划线格式(如 max_age)与结构体的驼峰命名格式(如 MaxAge)进行对应。这种转换是自动完成的。即使查询结果的字段名是 max_age,它仍然会匹配到结构体中的 MaxAge 字段。问题:查询结果返回的字段是max_age,为什么能匹配到结构体的MaxAge?
2024-09-02 16:55:03
740
原创 面向对象(OOP)
本文介绍了面向对象编程的三大特性(封装、继承、多态)及重要概念。封装将数据与操作捆绑并隐藏实现;继承实现代码复用;多态通过接口实现和方法重写等方式实现。重要概念包括抽象类(不可实例化,含抽象方法)、接口(定义方法契约)和复用类(提高代码重用性)。最后讲解了三种设计模式:单例模式确保一个类只有一个实例;工厂模式集中管理对象创建;控制反转通过依赖注入解耦组件。这些机制共同提升了代码的可维护性、扩展性和灵活性。
2024-06-06 18:30:13
1286
原创 MySQL InnoDB存储引擎-逻辑存储结构与架构
Buffer Pool:缓冲池是主内存中的一个区域,里面可以缓存磁盘上经常操作的真实数据,在执行增删改查操作时,不会直接操作磁盘写入,而是先操作缓冲池中的数据(若缓冲池没有数据,则从磁盘加载并缓存),然后再以一定频率刷新到磁盘,从而减少磁盘IO,加快处理速度。General Tablespaces:通用表空间,需要通过 CREATE TABLESPACE 语法创建通用表空间,在创建表时,可以指定该表空间。log),默认大小为16MB,日志缓冲区的日志会定期刷新到磁盘中。存储用户创建的临时表等数据。
2024-06-05 12:00:04
761
原创 MySQL触发器
触发器是与表有关的数据库对象,指在insert/update/delete之前或之后,执行触发器中定义的SQL语句集合。使用别名OLD和NEW来引用触发器中发生变化的记录内容。现在触发器还只支持行级触发,不吃吃语句级出发。
2024-06-05 10:37:19
255
原创 MySQL存储过程
存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想,就是对数据库SQL语言层面的代码进行封装与重用。
2024-06-04 11:33:32
187
原创 MySQL存储引擎
InnoDB是兼顾高可靠性和高性能的通用存储引擎特点:1.支持事务,DML操作遵循ACID模型2.支持行级锁,提高并发访问性能3.支持外键约束,保证数据的完整性和正确性文件xxx.ibd:xxx代表的是表名,InnoDB引擎瞎的每张表都会对应这样一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引要查看文件,可在操作系统命令行输入: ibd2sdi xxx.ibd。
2024-06-04 11:03:14
360
原创 MySQL事务并发问题及隔离级别
脏读:一个事务读到另外一个事务还没有提交的数据不可重复读:一个事务先后读取同一条记录,但两次读取的数据不同,称之为不可重复读幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据已经存在,好像出现了“幻影”
2024-06-04 10:18:05
221
原创 hyperf学习笔记
全称input/output操作,即输入与输出操作,指的是计算机与外部设备之间进行的数据交换过程。这些操作可以是硬件层面的,如硬盘读写、网络通信;软件层面的,如文件读写、数据库操作。因此,相对于Cpu的计算操作要慢得多,往往是性能瓶颈之一。
2024-05-20 15:57:32
385
1
原创 MySQL 锁
在做全库备份时,为了保证数据一致性,会给数据库加上全局锁在InnoDB引擎中,可以在备份时加上参数 --single-transaction, 参数来完成不加锁的一致性数据备份(底层是快照读的方式实现的)。
2024-05-13 20:19:14
838
原创 Sql优化
因为,当在进行分页查询时,如果执行 limit 2000000,10 ,此时需要排序前 2000010 记录,仅仅返回 2000000 - 2000010 的记录,其他记录丢弃,查询排序的代价非常大。优化思路:自己计数(可以借助于redis,但如果是带条件的count又比较麻烦了,新增数据时count值加1,删除数据时count加1)。在执行update的sql语句时,需注意使用的where条件,对其建立相应的索引,此时只会对当前行进行锁定。根据排序字段建立合适的索引,多字段排序时,也遵循最左前缀法则。
2024-05-10 10:02:34
827
1
原创 索引使用规则
MySQL将根据数据分布情况,评估使用索引相比全表扫描的速度,如何更慢,则不使用索引。当字段类型为字符串(varchar,text,longtext等)时,可以只将字符串的一部分前缀,建立索引,这样可以大大节约索引空间,从而提高索引效率。如果索引了多列(联合索引),查询的条件要从最左列开始,并且不跳过中间的列,如果跳过,索引将部分失效。在业务场景中,如果存在多个查询条件,考虑针对于查询字段建立索引时,建议建立联合索引,而非单列索引。联合索引中,出现范围查询(>,
2024-05-09 11:26:20
479
1
原创 Linux命令(一)
ls -l可查看文件权限,示例1.txt文件权限为:-rwxr-x---。从左往右分三段解读:1,rwx,该权限表示nathan用户可读可写可执行此文件;2,r-x,表示nathan用户组可读可执行此文件;3、---表示其他人不可读写执行此文件。不仅可以复制文件,还可以保持文件的权限、时间戳等属性,并且只复制文件之间的差异部分,提高传输效率。此时经可以在不输入密码的情况下登录到你的服务器了,若依然要求输入密码,请检查ssh配置文件。一周中的星期几(0 - 7,其中 0 和 7 都代表星期天)
2024-04-16 15:54:39
447
1
空空如也
Postgresql中numeric(m,n)和numeric占用空间相同吗
2021-11-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅