php模拟面试-面经

本文介绍了PHP面试中常见的技术问题,包括MySQL的优化方式如sql语句优化、开启慢查询日志和使用explain分析,Nginx的性能提升策略如使用stub_status模块监控和启用gzip压缩,以及PHP的调优方法如开启opcode缓存和使用xhprof性能分析工具。同时,文章强调了理解关键指标和监控对于性能优化的重要性。
摘要由CSDN通过智能技术生成

mysql方面

有哪些优化mysql的方式呢?

  • 当然你的sql语句你要看是否可以优化。

  • 开启msyql慢查询日志。

  • explain 分析。

  • 开启查询缓存。(这个得分场景,查多更少,比较好。不然缓存频繁失效也浪费性能)

explain都关注哪些字段?

这个问题,自行百度就ok。
还有就是问你某个字段的哪个值?这个你也自行百度。

什么是重点呢?比如rows的值。对吧。你要想到rows是不精确的统计。可以用analyze table 去优化。还有就是怎么会造成不准确。
另外extra 中的using filesort。到底怎么排序的。是否可以规避外存排序。
还有using tempory table ,用到内存表。等等

这些是重点。什么字段?什么值?是纯记忆。

怎么查看查询优化器生成执行计划的过程?

# 1. 打开optimizer trace功能 (默认情况下它是关闭的):
SET optimizer_trace="enabled=on";

# 2. 这里输入你自己的查询语句
SELECT ...; 

# 3. 从OPTIMIZER_TRACE表中查看上一个查询的优化过程
SELECT * FROM information_schema.OPTIMIZER_TRACE;

# 4. 可能你还要观察其他语句执行的优化过程,重复上边的第2、3步
...

# 5. 当你停止查看语句的优化过程时,把optimizer trace功能关闭
SET optimizer_trace="enabled=off";

mysql你会查看哪些指标呢?

show global status like%
【MySQL】常用监控指标及监控方法

连接数满了。如何看来自于哪个业务模块的呢?

Mysql show processlist 排查问题

通过看sql就知道了。

每个字段也尽量了解下。比如state 状态值有哪些,表示什么意思?

nginx 方面

nginx如何做监控?

使用stub_status模块监控Nginx的状态

说说nginx有哪些提升性能的方式把?

  • 使用UNIX socket
  • 开启gzip。
  • 开启send_file(说下零拷贝的好处)。
  • 使用proxy cache
  • 使用fastcgi cache
  • keepalive

其实调优不止这点,关于nginx,特别推荐《nginx核心100讲》,有一章专将nginx优化(18节)。

php方面

php 有哪些调优的方法?

  • 开启opcode缓存

  • 开启php 慢查询日志

  • xhprof 性能分析工具。

  • xdbug

  • runkit 扩展,用runkit_method_redefine重新定义一些类方法(比如pdo的query方法)。这样就走重定义,去收集调用的情况。达到查看重复调用的情况。

  • php 函数追踪扩展 phptrace

  • debug_backtrace() 函数

php-fpm监控指标?

使用zabbix监控nginx和php-fpm性能

内容来源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值