![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
面试必考
文章平均质量分 76
私念
PHP GOLANG
展开
-
php中cookie的值包含加号(+)获取变成空格的问题分析
背景最近发现有部分用户反馈,获取不到登录信息,于是进行分析分析我们的登录信息是加密存储到cookie中的,查看了下这个用户的 cookie加密信息中包含 加号“+” ,但是 php $_COOKIE 获取的时候,变成了空格,于是解密失败分析请求头中的信息发现,请求传过来的值是有 “+” 的,但是 :比如cookie中存储的 “cWEolyrQ0l63FG+YWHA” ,$_COOKIE 获取出来显示的 “cWEolyrQ0l63FG YWHA” ,多...原创 2022-02-11 11:56:29 · 1790 阅读 · 0 评论 -
php中foreach引用问题
背景php中foreach引用使用不当,经常引起莫名其妙的问题,建议使用完unset掉,或者尽量少用例如<?php$arr=[1,2,3];foreach($arras&$value){}foreach($arras$value){print_r($arr);}Array([0]=>1[1]=>2[2]=>1)Array([0]=>1...原创 2022-01-24 14:04:20 · 511 阅读 · 0 评论 -
linux中安全加固几条建议
参考:linux中安全加固几条建议 - PHP面试网背景本文以CentOS7版本为例来介绍,如果你使用的是秘钥登录服务器1-5步骤可以跳过。1) 设置复杂密码服务器设置大写、小写、特殊字符、数字组成的12-16位的复杂密码 ,也可使用密码生成器自动生成复杂密码,这里给您一个链接参考:生成随机密码 - 密码生成器echo"root:wgr1TDs2Mnx0XuAv"|chpasswd2) 设置密码策略修改文件/etc/login.defsPASS_MAX...原创 2021-11-17 21:10:49 · 300 阅读 · 0 评论 -
git中sh文件添加可执行权限
参考:git中sh文件添加可执行权限背景有时我们需要在git仓库中放一些可执行脚本,但是部署到线上后却没有可执行权限,还要单独加权限,过程比较繁琐,下面介绍下如果修改git仓库中文件的权限1.查看文件权限信息$gitls-files--stage100644b0a1909819160a88cf723cba9b082a41638e19d70work.sh发现644(r=4,w=2,x=1),需要将其修改为可执行权限755git-ls-files - ...原创 2021-11-09 09:22:34 · 1125 阅读 · 0 评论 -
基于rebase的Git工作流
参考:https://www.phpmianshi.com/?id=124使用Git在多人协作的过程中,我们也会面临如何运用好Git的问题。这种情况下,就出现了各种各样的Git Workflow,而本文将介绍一种基于rebase的工作流,这种工作流也是目前开源社区所比较推崇的做法,了解了这种工作流之后可以更规范的使用Git一、Rebase和Squash1、Rebase是什么,为什么使用Rebaserebase是能够将我们对代码的更改从一个分支集成到另一个分支中的git命令之一(另一个命令是M原创 2020-12-11 10:12:25 · 907 阅读 · 0 评论 -
mysql中performance_schema(二) 理论篇
参考:https://www.phpmianshi.com/?id=179背景mysql performance_schema中总共包含52个表,主要分为几类:Setup表,Instance表,Wait Event表,Stage Event表Statement Event表,Connection表和Summary表。上一篇文章已经着重讲了Setup表,这篇文章将会分别就每种类型的表做详细的描述。Instance表 instance中主要包含了5张表:cond_instances...原创 2020-10-26 13:50:04 · 299 阅读 · 0 评论 -
mysql常见面试题第一讲
参考:https://www.phpmianshi.com/?id=176一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。2、数据记录本身被原创 2020-10-12 16:48:18 · 111 阅读 · 0 评论 -
mysql中行锁、两阶段锁协议、死锁以及死锁检测
参考:https://www.phpmianshi.com/?id=175行锁MySQL的行锁都是在引擎层实现的,但是 MyISAM 不支持行锁,意味着并发控制只能使用表锁,同一张表任何时刻只能被一个更新在执行,影响到业务并发度。InnoDB 是支持行锁的,这也是 MyISAM 被 InnoDB 替换的重要原因之一。行锁就是针对数据库中表的行记录的锁,这很好理解,比如事务 A 更新了一行,而这时候,事务 B 也要更新一行,则必须等事务 A 的操作完成后才能更新。两阶段锁 (Two-Phase原创 2020-09-28 15:31:45 · 974 阅读 · 0 评论 -
mysql中长事务详解
参考:https://www.phpmianshi.com/?id=174什么是长事务运行时间比较长,长时间未提交的事务,也可以称之为大事务。这类事务往往会造成大量的阻塞和锁超时,容易造成主从延迟,要尽量避免使用长事务。下面我将演示下如何开启事务及模拟长事务:#假设我们有一张stu_tb表,结构及数据如下stu_id唯一索引mysql>select*fromstu_tb;+--------------+--------+----------+-------------...原创 2020-09-25 16:01:05 · 582 阅读 · 0 评论 -
mysql中CPU或内存利用率过高问题
参考:https://www.phpmianshi.com/?id=173CPU 利用率过高原因在 MySQL 使用过程中,出现 CPU 利用率过高甚至超过100%时,与数据库存在低效 SQL 或大量行锁冲突有非常大的关系,一般都是由于大量低效的 SQL 导致,出现行锁冲突的概率非常低。风险若 MySQL CPU 的利用率长时间处于100%,会严重影响数据库的整体性能,极端情况下可能会出现实例 HANG 住的情况。为避免业务因 CPU 资源不足而受影响,建议提前对 CPU 利用率过高的原创 2020-09-24 15:13:04 · 5391 阅读 · 1 评论 -
InnoDB体系结构及工作原理
参考:https://www.phpmianshi.com/?id=172概念InnoDB主要包括了内存池、后台线程以及存储文件。INNODB的三大特性:插入缓存,两次写,自适应hash内存池又是由多个内存块组成的,主要包括Buffer Pool、redo log缓冲等,解决cpu速度和磁盘速度的严重不匹配问题后台线程则包括了Master Thread、IO Thread以及Purge Thread等,后台进程保证缓存池和磁盘数据的一致性(读取、刷新),并保证数据异常宕机时能恢复到正常状态。原创 2020-09-22 19:34:44 · 955 阅读 · 0 评论 -
mysql中优化器是如何选择索引的
参考:https://phpmianshi.com/?id=148一:概念 - 在 索引建立之后,一条语句可能会命中多个索引,这时,索引的选择,就会交由优化器 来选择合适的索引。 -优化器选择索引的目的,是找到一个最优的执行方案,并用最小的代价去执行语句。二:优化器选择索引的原则? -在数据库里面,扫描行数是影响执行代价的因素之一。 -扫描的行数越少,意味着访问磁盘数据的次数越少,消耗的 CPU 资源越少。 -当然,扫描行数并不是唯一的判断标准,优化器还...原创 2020-08-31 16:21:20 · 573 阅读 · 0 评论 -
innodb中统计数据是如何收集的
参考:https://www.phpmianshi.com/?id=142InnoDB 统计数据如何查看1. 通过SHOW TABLE STATUS可以看到关于表的统计数据2. 通过SHOW INDEX可以看到关于索引的统计数据InnoDB提供了两种存储统计数据的方式1. 永久性的统计数据:这种统计数据存储在磁盘上,也就是服务器重启之后这些统计数据还在。2. 非永久性的统计数据:这种统计数据存储在内存中,当服务器关闭时这些这些统计数据就都被清除掉...原创 2020-08-24 09:45:06 · 390 阅读 · 0 评论 -
mysql中性能分析Profiling
参考:https://www.phpmianshi.com/?id=138概念Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况,可以用于Sql调优的测量。示例1、先查看是否开启了此功能,默认情况下,参数处于关闭状态,为OFF状态show variables like 'profiling%';2、开启Profiling:setprofiling=1;3、展示最近的SQL执行情况:s...原创 2020-08-21 18:25:16 · 277 阅读 · 0 评论 -
mysql中index_merge索引合并优化
参考:https://phpmianshi.com/?id=135前言深入理解 index merge 是使用索引进行优化的重要基础之一。理解了 index merge 技术,我们才知道应该如何在表上建立索引。MySQL在分析执行计划时发现走单个索引的过滤效果都不是很好,对多个索引分别进行条件扫描,然后将它们各自的结果进行合并(intersect/union)。我们的 where 中可能有多个条件(或者join)涉及到多个字段,它们之间进行 AND 或者 OR,那么此时就有可能会使用到 in原创 2020-08-14 12:01:13 · 1676 阅读 · 0 评论 -
MySQL可重复读隔离级别的实现原理
参考:https://www.phpmianshi.com/?id=23原理MySQL默认的隔离级别是可重复读,即:事务A在读到一条数据之后,此时事务B对该数据进行了修改并提交,那么事务A再读该数据,读到的还是原来的内容。 那么MySQL可重复读是如何实现的呢?使用的的一种叫MVCC的控制方式 ,即Mutil-Version Concurrency Control,多版本并发控制,类似于乐观锁的一种实现方式实现方式InnoDB在每行记录后面保存两个隐藏的列来,分别保存了这个行的创.原创 2020-08-13 13:36:51 · 223 阅读 · 0 评论 -
mysql中优化必读
参考:https://www.phpmianshi.com/?id=24通用规则多读少写加缓存,少读多写加队列带事务的不要整体commit,分段commit一、要保证数据库的效率,要做好以下四个方面的工作:① 数据库设计② sql语句优化③ 数据库参数配置④ 恰当的硬件资源和操作系统二、通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):第一范式:1.原创 2020-08-12 09:52:32 · 112 阅读 · 0 评论 -
InnoDB的七种锁
参考:https://www.phpmianshi.com/?id=22InnoDB的七种锁1. 自增锁(Auto-inc Locks)2. 共享/排他锁(Shared and Exclusive Locks)3. 意向锁(Intention Locks)4. 插入意向锁(Insert Intention Locks)5. 记录锁(Record Locks)6. 间隙锁(Gap Locks)7. 临键锁(Next-Key Locks)相关名词|--表级锁(..原创 2020-08-11 17:06:51 · 444 阅读 · 0 评论 -
MyISAM与InnoDB的区别
参考:https://www.phpmianshi.com/?id=77MyISAM与InnoDB的区别是什么?这是一个常见的面试题,我们要具从不同的角度解读一下。1、存储结构MyISAM:每个MyISAM在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD(MYData)。索引文件的扩展名是.MYI(MYIndex)。InnoDB:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),I...原创 2020-08-09 13:00:04 · 64 阅读 · 0 评论 -
Mysql中 面试必考
通用规则是:多读少写加缓存,少读多写加队列带事务的不要整体commit,分段commit一、要保证数据库的效率,要做好以下四个方面的工作:① 数据库设计② sql语句优化③ 数据库参数配置④ 恰当的硬件资源和操作系统二、通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不...原创 2019-12-19 11:53:33 · 202 阅读 · 0 评论 -
Redis中 面试必考
参考:http://note.youdao.com/noteshare?id=2839dbb376ab21135183dc1603b10379&sub=0B126347AFB347B8ACDD337A5A808D05一. Redis性能如此高的原因纯内存操作,内存的读写速度非常快 单线程,保证了每个操作的原子性,省去了很多上下文切换线程的时间 高效的数据结构,如压缩表,对短数据...原创 2019-12-19 10:09:18 · 159 阅读 · 0 评论