7@Linux指令
1 系统权限的开发流程
2 http三次握手三次挥手
3 php7有哪些改变和特色
Foreach php5中会移动数组的指针,php7中不会移动数组指针
list的改动
性能更快
增加了变量的数据类型的定义,函数的参数和返回结果可以定义数据类型
致命错误改为异常抛出
空合并运算符??
太空船运算符<=>
4 tp3和tp5有哪些区别
5 autoload 是怎么解析文件的以及它的应用场景
psr4规范
如果我们使用一个框架,或者一个第三方包,里面一般有成百上千个类文件,而我们通常是不用自己去加载这些文件的,此时用的便是php的自动加载机制
6 重新思考单点登录能不能用mysql来实现
7 数据结构 算法 二叉树
8 设计模式 应用场景
单例模式:数据库连接,任务管理器,tp框架的依赖注入
观察者模式:注册送金币积分之类的;下单;发短信;邮件
工厂模式:不同种类的数据库的链接;
9 Redis的应用场景
A 缓存
B 排行榜(有序集合)
C 计数器如观看或者浏览次数,每次如果都 对数据库+1会极大的增加数据库的压力,因此可以使用redis的incr命令对变量加一从而实现计数
D 分布式锁。在减库存、秒杀等场景下,可以使用setnx来编写分布式锁
E 消息队列。主要用于高并发下对写的操作
10 innodb和myisam的索引的数据类型有什么不同,为什么选择这个数据类型
数据和索引的存储方式不一样,innodb中的b+tree中的叶子结点存放了数据和索引,而myisam只存放指针,指向要查找的数据。
Btree会跨层查找。索引一般都在磁盘上,若使用hash做索引,则在数据量大的情况下无法一次装入内存,而b+tree的设计可以允许数据分批,同时树的高度较低,提高了查找效率
11 如果redis的消息队列写入失败了怎么办?redis是怎么生产消息的
rabbitmq具备消息标记功能,消息被消费后rabbitmq会打上标记
12 最左匹配原则
在联合索引中,需要用到最左边的索引,剩下的所以才有可能命中。联合建立后,数据库会根最左边的所以建立排序,剩下的索引相对于最左边的索引有序,但相对于整张表来说无序
13 导出大量数据的表格的时候应该怎么解决慢的问题
14 mysql的函数
From_unixtime()将时间戳转换成日期
Unix_timestamp()将日期转换成时间戳
15 影响索引命中的%
在select后面添加对应的字段
16 b+树