目录
一、innodb有几种锁机制?
1)共享/排他锁
2)意向锁
3)记录锁
4)间隙锁
5)插入意向锁
6)临键锁
7)自增锁
二、数据库中的事务是什么?
事务是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响将都取消。
三、网站访问速度慢的排查方法
- 1、当网站访问较慢时,首先先查看本地网络是否正常。
方法:先用网络测速测下本地的网络速率:网络速率低于50KB/s,访问网站自然也慢。
- 2、本地网络速率正常时,再检查下所访问的网站是否正常。
方法:测一下网站的访问性能操作:在网站检测中,输入IP或域名,选择单文件或全页面进行测试
分析报告: DNS服务器:显示访问者的出口DNS,作用是通过出口DNS获取访问者所在的网络,如:xx.xx.xx.xx(北京 网通)网站解析IP:网页的IP地址,作用获悉IP地址,可使用ping命令检查该IP的连通性,诊断该网站是否正常,如ping网页时丢包较严重,访问速率也会越低
总时间:网站的响应时间,可了解网站的性能瓶颈或者是利用谷歌或IE浏览器的F12开发者工具查看下网站的大小和网站的打开速度成不成正比。
- 3、网站出现无法访问时,使用故障诊断命令定位故障点。
命令分析: ping:检测IP或域名的连通性 dig/nslookup:查看DNS解
析情况 traceroute:显示从访问者到网站的路由连接状态,如果有节点无法连接,只需针对该故障点进行修复便可快速恢复网络。
- 4、通过Chrome浏览器开发者工具排查网站打开慢
网站打开速度很慢,通过阿里云ECS控制台“实例监控信息”查看网站所在服务器的性能情况,如果网站所在的服务器性能没有瓶颈,那么可以通过Chrome浏览器中的开发者工具来排查是哪些资源导致了网站打开速度慢。
- 网站运行速度慢,先判断是前端问题还是后端问题,直接通过开发人员工具(Chrome)或Firefox的Firebug查看请求慢的是资源开始接口。90%网站性能问题是由前端造成的。
常见前端问题解决思路- 前端js css flash资源慢 查看资源十分过大,对js css 进行压缩;删除赘余的包;引入框架时十分选用用于生产的mini包;图片等资源较多是是否试用cdn且cdn是否正常;页面缓存规则设置是否正确。。。。。
- 前端问题综合查看,可以先看看YSlow的给出的提示。
- 后端常见问题,数据库执行时间过长、逻辑问题
后端接口逻辑问题查找方式- PHP调试扩展Xdebug的profile日志能记录函数的执行耗时和调用关系等信息.
PHP:使用xdebug profiler 做性能分析 - Google Chrome - PHP-FPM也提供了slowlog慢日志.
sql 执行时间太长问题查找和解决 - MySQL提供了slow_query_log慢查询日志.
- PHP调试扩展Xdebug的profile日志能记录函数的执行耗时和调用关系等信息.
四、浅谈打开网页速度慢的原因和解决方法
1、原因一:http请求次数太多
解决:减少http请求次数
① 图片地图:把多张图片整合到一张图片中,以位置定位超链接。
② CSS Sprites合并图片,通过指定CSS的backgroud-image和backgroud-position来显示元素。
③ 合并JS脚本和CSS样式表。
④ 使用外部JS和CSS文件。
2、原因二:接收数据时间过长,如下载资源过大
解决:对HTTP传输进行压缩,即在js,css、图片等资源已经压缩的基础上,在HTTP传输过程中的再次压缩。客户端可以通过Accept-Encoding头来声明浏览器支持的压缩方式,服务端通过Content-Encoding来启用压缩,配置压缩的文件类型,压缩方式。gzip使用无损压缩,压缩效果最佳,已经成为使用最为普遍、支持的浏览器最多的数据压缩格式。
3、原因三:JavaScript脚本过大,阻塞了页面的加载
解决:将JavaScript脚本放在</body>标签前。script没有async和defer时,JS文件将在下载后立即执行。这种情况下,script放在顶部会阻塞页面呈现,在网速慢的情况下会导致“白屏”,直到脚本下载完毕才继续呈现页面。因此,script放在底部可以让页面尽快呈现。
4、原因四:CSS、JavaScript、图片等需要重复加载
解决:静态资源统一放在一个静态域名上,减轻重复下载静态资源的负担。
5、原因五:cookie影响
解决:减小cookie的影响
① 去除没有必要的cookie,如果网页不需要cookie就完全禁掉。
② 将cookie的大小减到最小:减小HTTP请求报文的大小,提高响应速度。
③ 设置合适的过期时间:cookie信息将存储到硬盘上,即使浏览器退出cookie还会存在,只要cookie未被清除且还在过期时间内,该cookie就会在访问对应域名时发送给服务器。
④ 通过使用不同的domain减少cookie的使用:cookie在访问对应域名下的资源时都会通过HTTP请求发送到服务器,但在访问一些资源,如js,css和图片时,大多数情况下cookie是多余的,可以使用不同的domain来存储这些静态资源,这样访问这些资源时就不会发送多余的cookie,从而提高响应速度。
6、原因六:网页资源过多
解决:使用CDN部署网络以提高下载速度,可以先通过免费的CDN供应商来分发网页资源。