MySQL索引原理及慢查询优化

MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。本人从13年7月份起,一直在美团核心 阅读全部

nginx之location配置

语法规则: location [=|~|~*|^~] /uri/ { … }= 开头表示精确匹配^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。~ 开头表示区分大小写的正则匹配~*  开头表示不区分大小写的正则匹配!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则/ 通用匹配,任何请求都会匹配到。多个location配置的情 阅读全部

面试必看,新浪php面试题

新浪php面试题1. echo count("abc"); 输出什么?2. 用PHP写出显示客户端IP与服务器IP的代码3. error_reporting(2047)什么作用?error_reporting 设定错误讯息回报的等级2047我记得应该是E_ALL。php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅 参考资料)。在调试 阅读全部

常用面试题一

打开php.ini中的safe_mode,会影响哪些函数?至少6个解答:用户输入函数(fopen(),file(),require()),只能用于调用这些函数有相同脚本的拥有者)创建新文件(限制用户只在该用户下拥有目录下创建文件)用户调用popen()systen() exec()等脚本,只有脚本处在safe_mode_exec_dir配置指令指定的目录中才可能加强Http认证,认证脚本拥有这的UID的划入认证领域范围内,此外启用安全模式下,不会设置php_authmysql服务器所用的用户名必 阅读全部

PHP解决并发问题的几种实现

对于商品抢购等并发场景下,可能会出现超卖的现象,这时就需要解决并发所带来的这些问题了在PHP语言中并没有原生的提供并发的解决方案,因此就需要借助其他方式来实现并发控制。方案一:使用文件锁排它锁flock函数用于获取文件的锁,这个锁同时只能被一个线程获取到,其它没有获取到锁的线程要么阻塞,要么获取失败在获取到锁的时候,先查询库存,如果库存大于0,则进行下订单操作,减库存,然后释放锁方案二:使用Mysql数据库提供的悲观锁Innodb存储引擎支持行级锁,当某行数据被锁定时,其他进程不能对这行数据进行 阅读全部

原生PHP实现队列与栈

队列队列(queue)是常用的数据结构之一,它是一种特殊的线性表,受到操作的限制,只能在尾部进行插入操作,在头部进行删除操作。 队列遵循先入先出(FIFO,First In First Out)的原则,每一个新插入的元素都是在队列的尾部插入,每一个要删除的元素都是位于队列的头部,当从队列的头部删除了一个元素后,其它队列中的元素就会向前进1位,在元素移动到队首时,就会接受出队的操作。 还有一种队列比较特殊,首尾两端都允许进行插入和删除的操作,这种队列可以称为双端队列,与标准的队 阅读全部

php算法----队列

此队列算法中有两个类一个是data类,这个类是存放数据;第二个是queue也就是队列类这个就是队列的一些操作。首先队列里包含front(队列的头,也就是出队是要出去的) rear(队列的尾部在这里永远指向0) queue(存放所有入队的data对像,queue中默认存在一个元素当空时front和rear都指向他) maxsize(队列的长度)四个属性应用说明:1初始化队列:生成一个队列传入一个参数作为maxsize初始化队列把rear设为0 ,front设为0此时queue中只有0号元素rear 阅读全部

PHP实现队列及队列原理

队列是一种线性表,按照先进先出的原则进行的:PHP实现队列原理看看各语言实现队列的方法:各语言实现队列的方法PHP实现队列:第一个元素作为队头,最后一个元素作为队尾<?php /**  * 队列就是这么简单  *   * @link http://www.phpddt.com  */ $array =  array('PHP', 'JA 阅读全部

新手必须掌握的Linux命令

基本的文件目录操作ls$ ls #查看当前目录下文件conf     lnmp_install.sh   README  vhost_ngx_pagespeed.sh init.sh  ngx_pagespeed.sh  source  vhost.sh$ ls conf #查看conf 阅读全部

大型网站系统架构演化之路

前言一个成熟的大型网站(如淘宝、天猫、腾讯等)的系统架构并不是一开始设计时就具备完整的高性能、高可用、高伸缩等特性的,它是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随着业务的扩展而逐步完善的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如:淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿用户的实时消息传输,百度它要处理海量的搜索 阅读全部