- 博客(8)
- 收藏
- 关注
转载 MySQL是如何优化和查询的
当希望 MySQL 能够以更高的性能运行查询时,最好的办法就是弄清楚 MySQL 是如何优化和执行查询的当我们向 MySQL 发送一个请求的时候, MySQL 执行如下操作:客户端发送一条查询给服务器。服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。服务器进行 SQL 解析、预处理,再由优化器生成对应的执行计划。MySQL 根据优化器生成的执行计划,调用存储引擎的 API 来执行查询。将结果返回给客户端。...
2020-05-13 18:09:40 145 1
原创 MySQL主从同步延迟原因与解决方案
一、MySQL数据库主从同步延迟产生的原因MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是随即的,不是顺序的,成本高很多。另一方面,由于SQL Thread也是单线程的,当主库的并发较高时,产生的DML数量超过slave的SQL Thread所能处理的速度,或者当slave中有大型query语句产生了锁等待那么延时
2021-06-02 18:00:20 8803 1
转载 MySQL主从复制原理
为什么要做主从复制1.在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运行。2.做数据的热备,主库宕机后能够及时替换主库,保证业务可用性。3.架构的扩展。业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个机器的I/O性能。查看主从复制的状态当主从复制正在进行中时,如果想查看从库两个
2021-06-02 17:31:41 135
原创 PHP垃圾回收机制Zend GC详解
一、什么是垃圾首先需要定义一下“垃圾”的概念,新的GC负责清理的垃圾是指变量的容器zval还存在,但是又没有任何变量名指向此zval。因此GC判断是否为垃圾的一个重要标准是有没有变量名指向变量容器zval。假设有一段PHP代码,使用了一个临时变量tmp存储了一个字符串,在处理完字符串之后,tmp存储了一个字符串,在处理完字符串之后,tmp存储了一个字符串,在处理完字符串之后,tmp变量对我们没有意义,但这个变量实际还存在,$tmp符号依然指向它所对应的zval,GC会认为PHP代码中可能还会使用到此变量
2021-06-02 16:08:45 129
原创 Mysql的事务隔离级别
在谈事务的隔离级别之前,先简单说下事务的基本要素一、事务的基本要素(ACID)1.原子性(Atomicity):事务开始后的所有操作,要么全部做完,要么全部不做,事务执行过程中出错,需要回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中的原子,是一个物质构成的基本单位2.一致性(Consistency): 事务开始前和结束后,数据库的完整性约束没有被破坏。比如A向B转账,不可能A扣了钱,B却没到账。3.隔离性(Isolation): 同一时间,只允许一个
2021-04-22 21:00:52 101
转载 什么是缓存穿透?击穿?雪崩?如何解决?
什么是缓存穿透?击穿?雪崩?如何解决?缓存穿透首先,我们说说什么是缓存穿透。缓存穿透问题在一定程度上与缓存命中率有关。如果我们的缓存设计的不合理,缓存的命中率非常低,那么,数据访问的绝大部分压力都会集中在后端数据库层面。什么是缓存穿透如果再数据请求时,在缓存层和数据层都没有找到符合条件的数据,也就是说,在缓存层和数据层都没有命中数据,那么这种情况就叫作缓存穿透。看下图:造成缓存穿透的主要原因是:查询某个key对应的数据,Redis缓存中没有相应的数据,则直接去数据库中查询。数据库中也不存在要
2021-03-19 17:03:16 1225
原创 PHPExcel 锁定表头 设置样式,背景颜色,居中,宽,单元格合并
//实例化类库$objectPHPExcel = new \PHPExcel();//选择指定的sheet$objectPHPExcel->setActiveSheetIndex(0);//冻结(锁定)表头$objectPHPExcel->getActiveSheet()->freezePane('A2');//锁定这个单元格,则该单元格所有的左边区域和上方区域都会被锁定,也就是不受滚动条的影响,像浮在那一样,这就是锁定单元格的原理。所以锁定A2就是冻结第一行了//设定水平居中
2020-05-20 14:16:49 1473
原创 关于PHP解析导入CSV文件的问题
事情的经过是这个样子的像往常一样,来到公司打开电脑,准备工作,这时来了一条微信消息,说导入的功能报错了,于是乎,我开始判断程序是不是哪里出问题了。拿着传给我的csv文件开始测验。== 一步步测试,先查询是否导入时是否获取csv文件中的数据,结果打印出来的界面是这个样子的==这是什么情况呢?然后就开始百度搜查,验证,1.为什么会出现乱码呢?2.是什么原因导致的呢?3.跟csv里的工作表个数有关系吗?各种网上查询,最终跟我写的都是差不多一样的啊public function actionC
2020-05-14 15:25:29 343 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人