201902-14 php性能优化教程:39条技巧优化PHP代码,来复习总结下吧 1、如果一个方法能被静态,那就声明他为静态的,速度可提高1/4; 2、echo的效率高于print,因为echo没有返回值,print返回一个整型; 继续阅读 >
201901-31 PHP开发几点安全问题,需要特别注意! php给了开发者极大的灵活性,但是这也为安全问题带来了潜在的隐患,近期需要总结一下以往的问题,在这里借翻译一篇文章同时加上自己开发的一些感触总结一下。当开发一个互联网服务的时候,必须时刻牢记安全观念,并在开发的代码中体现。PHP脚本语言对安全问题并不关心,特别是对大多数没有经验的开发者来说。每当你讲任何涉及到钱财事务等交易问题时,需要特别注意安全问题的考虑,例如开发一个论坛或者是一个购物车等。安全... 继续阅读 >
201901-31 教你两小时入门 Docker 1、0Docker 的应用场景跟好处我就不一一介绍了,这些你都不知道应该从新学下 Docker,或者来听课学习!直接上安装教程:2、0Docker安装系统环境:docker最低支持centos7且在64位平台上,内核版本在3.10以上版本:社区版,企业版(包含了一些收费服务)官方版安装教程(英文)https://docs.docker.com/install/linux/docker-ce/centos/#upgrade-docker-after-using-the-convenience-script博主版安装教... 继续阅读 >
201901-30 PHP程序员需要知道的另外一种日志 前言作为一名程序员,比码代码还重要那么一点点的东西就是日志的分析和查询。下面列出常见日志及设置方法。配置文件nginx分access_log和error_log两种日志设置需要在nginx.conf中,默认通过源码包编译安装nginx目录应在/usr/local/nginx目录下,如果你通过yum或者其他方式安装,不清楚或不知道nginx具体安装目录,可以使用find / -name nginx.conf或者nginx -V | grep prefix------... 继续阅读 >
201901-30 swoole实现任务定时自动化调度详解,来学习下 开发环境环境:lnmp下进行试验问题描述这几天做银行对帐接口时,踩了一个坑,具体需求大致描述一下。银行每天凌晨后,会开始准备昨天的交易流水数据,需要我们这边请求拿到。因为他们给的是一个base64加密的zip压缩流,解开以后可以得到txt文件,里面就是我们需要的数据了。业务程序写好以后,随手丢了一个定时任务就去睡觉了。哪知道第二天上班的时候,检查。发现并没有拿到数据,查询一下日志的时候发现,凌晨服务端请求... 继续阅读 >
201901-30 培养自己的php编码规范,养成一个好习惯 为什么我们要培养自己的编码规范?我们写代码的时候,一个好的编码规范,对我们来说能够起到很多意向不到的效果。至少会有一下的好处:1、提高我们的编码效率。整齐划一的代码方便我们进行复制粘贴嘛!2、提高代码的可读性。3、显示我们专业。别人看到了我们的代码,发现整个代码的书写流程都整齐划一,瞬间逼格就上去了!4、方便团队协同工作。大家使用同一的规范,这样就消除了五花八分的书写方式,同一协调!编码规范包含两... 继续阅读 >
201901-21 Mysql的优化策略,提升PHP的运行效率 为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对query语句进行优化。虽然我们对数据库的读取写入速度上却是无能为力,但在一些数据库类扩展像memcache、mongodb、redis这样的数据存储服务器的帮助下,PHP也能达到更快的存取速度,所以了解学习这些扩展也是非常必要。 继续阅读 >
201901-21 php中Session使用方法详解 Session的声明与使用Session的设置不同于Cookie,必须先启动,在PHP中必须调用session_start()。session_start()函数的语法格式如下:Boolsession_start(void)//创建Session,开始一个会话,进行Session初始化注意:session_start()函数之前不能有任何输出当第一次访问网站时,Seesion_start()函数就会创建一个唯一的SessionID,并自动通过HTTP的响应头,将这个SessionID保存到客户端Cookie中。同时,也在服... 继续阅读 >
201901-21 MySQL索引,你知道有几种类型呢? 一、简介MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索引5.全文索引二、语句CREATETABLEtable_name[col_namedatatype][unique|fulltext][index|key][index_name](col_name[length])[asc|desc]1.unique|fulltext为可选参数,分别表示唯一索引、全文索引2.index和key为同义词,两者作用相同,用来指定创建索引3.col_name为需要创建索引的字段列,该列必须从数据表中该定义的多个列中选择4.inde... 继续阅读 >
201901-21 MySQL锁机制&&PHP锁机制,应用在哪些场景中? 模拟准备--如何模拟高并发访问一个脚本:apache安装文件的bin/ab.exe可以模拟并发量 -c模拟多少并发量 -n一共请求多少次http://请求的脚本例如:cmd: apache安装路径/bin/ab.exe -c 10 -n 10 http://web.test.com/test.phpMYSQL中的锁:语法:LOCKTABLE表名1READ|WRITE,表名2READ|WRITE..................【锁表】UNLOCKTABLES 【释放表】... 继续阅读 >
201901-21 PHP简单实现“相关文章推荐”功能的方法 摘要:通常在做内容网站的时候,需要在每一篇文章中出现与该文章相关的文章列表。对于大多数人来说,使用的方法通常是:建立一个关键词列表,判断每篇文章包含有那些关键词,最后根据关键词找出与某篇文章最相关的文章。对于内容比较复杂的网站,确定关键列表词显然会比较麻烦。本文介绍了与以往方法不同的similar_text()函数来方便的达到我们的预期要求。具体的思路是:从文章列表中取出所有的文章标题,将所有的文章标题都同当前标题... 继续阅读 >
201901-19 Redis实现分布式锁与任务队列的思路,附上源代码 文章步骤很详细较长,阅读完需有耐心的开发者一、正文大家都知道在天猫、京东、苏宁等等电商网站上有很多秒杀活动,例如在某一个时刻抢购一个原价1999现在秒杀价只要999的手机时,会迎来一个用户请求的高峰期,会有几十万几百万的并发量,来抢这个手机,在高并发的情形下会对数据库服务器或者是文件服务器应用服务器造成巨大的压力,严重时说不定就宕机了。另一个问题是,秒杀的东西都是有量的,例如一款手机只有10台的量秒杀... 继续阅读 >
201812-03 PHP实现好友生日邮件提醒 我有一个想法是这样的,希望每天知道今天是我哪位好友的生日?当然,我得首先保存我所有好友的生日信息实现:在新浪申请免费服务器,并申请Mysql应用,然后建一张表保存好友的信息我想,我已经完成第一步了,idcard包含着出生日期。第二步,我们发现生日都是农历日期的,而我们常用的是公历日期所以,我们要实现获取今天的农历日期,这个是我从网上找到的一段公历转农历,农历转公历的源代码<?phpclassLunar{private... 继续阅读 >
201802-21 MySQL 统计信息以及执行计划预估方式初探 数据库中的统计信息在不同(精确)程度上描述了表中数据的分布情况,执行计划通过统计信息获取符合查询条件的数据大小(行数),来指导执行计划的生成。在以Oracle和SQLServer为代表的商业数据库,和以开源的PostgreSQL为代表的数据库中,直方图是统计信息的一个重要组成部分。在生成执行计划的时候,通过统计信息以及统计信息的直方图来预估符合条件的数据行数,从而影响执行计划的生成。统计信息对执行计划的影响... 继续阅读 >
201712-06 项目中常用的19条MySQL优化 声明一下:下面的优化方案都是基于“Mysql-索引-BTree类型”的一、EXPLAIN做MySQL优化,我们要善用EXPLAIN查看SQL执行计划。下面来个简单的示例,标注(1,2,3,4,5)我们要重点关注的数据type列,连接类型。一个好的sql语句至少要达到range级别。杜绝出现all级别key列,使用到的索引名。如果没有选择索引,值是NULL。可以采取强制索引方式key_len列,索引长度rows列,扫描行数。该值是个预估值ex... 继续阅读 >
201711-25 MySQL · 最佳实践 · SQL Server三种常见备份 已认证的机构 摘要本期月报是SQLServer数据库备份技术系列文章的开篇,介绍三种常见的SQLServer备份方法的工作方式、使用T-SQL语句和使用SSMSIDE创建备份集三个层面,介绍SQLServer的三种常见备份的工作原理和使用方法。三种常见的备份包括:数据库完全备份(FullBackup)数据库日志备份(TransactionLogBackup)数据库差异备份(DifferentialBackup)备份的重要性在开始分享之前,我们首先来看看数据... 继续阅读 >
201708-22 拆解 MySQL 的高阶使用与概念 前面我们主要分享了MySQL中的常见知识与使用。这里我们主要分享一下MySQL中的高阶使用,主要包括:函数、存储过程和存储引擎。对于MySQL中的基础知识,可以参见《与MySQL的零距离接触》1函数函数可以返回任意类型的值,也可以接收这些类型的参数。字符函数函数名称描述CONCAT()字符连接CONCAT_WS()使用指... 继续阅读 >
201708-22 用 Node + MySQL 处理 100G 数据 通过这个Node.js和MySQL示例项目,我们将看看如何有效地处理数十亿行占用数百GB存储空间的数据。本文的第二个目标是帮助你确定Node.js+MySQL是否适合你的需求,并为实现此类解决方案提供帮助。本文章使用的实际代码可以在GitHub上找到。为什么使用Node.js和MySQL?我们使用MySQL来存储我们的Node.js监控和调试工具用户的分布式跟踪数据Trace。我们选择了MySQL,因为在决定的时候... 继续阅读 >
201708-01 10个提升MySQL性能的小技巧 从工作量分析到索引的三条规则,这些专家见解肯定会让您的MySQL服务器尖叫。在所有的关系数据库中,MySQL已经被证明了完全是一头野兽,只要通知停止运行就绝对不会让你多等一秒钟,使你的应用置于困境之中,你的工作也承受极大的风险。不过事实是,普通的错误都在MySQL性能错误的射程之内。所以为了使你的MySQL服务器能够高速运转,提供稳定且持续的服务,消除这些错误是非常有必要的,但是这可能常常会被你的繁忙... 继续阅读 >
201703-23 MySQL与PostgreSQL相比哪个更好? 网上已经有很多拿PostgreSQL与MySQL比较的文章了,这篇文章只是对一些重要的信息进行下梳理。在开始分析前,先来看下这两张图:MySQLMySQL声称自己是最流行的开源数据库。LAMP中的M指的就是MySQL。构建在LAMP上的应用都会使用MySQL,如WordPress、Drupal等大多数php开源程序。MySQL最初是由MySQLAB开发的,然后在2008年以10亿美金的价格卖给了Sun公司,Sun公司又在2010年被Oracle收购。Oracle支持MySQL的多个... 继续阅读 >
201703-08 MySQL 及 SQL 注入与防范方法 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理。1.以下实例中,输入的用户名必须为字母、数字及下划线的组合,且用户名长度为8到20个字符之间:if(preg_match("/^\w{8,20}$/",$_GET['username'],$matche... 继续阅读 >
201702-28 踩坑CBO,解决那些坑爹的SQL优化问题 本次分享大纲:CBO优化器存在哪些坑CBO优化器坑的解决之道加强SQL审核,将性能问题扼杀于襁褓之中分享现场FAQCBO(CostBasedOptimizer)优化器是目前Oracle广泛使用的优化器,其使用统计信息、查询转换等计算各种可能的访问路径成本,并生成多种备选执行计划,最终Oracle会选择成本最低的作为最优执行计划。与“远古”时代的RBO(RuleBasedOptimizer)相比,显然更加符合数据库实际情... 继续阅读 >