杉哥的个人博客

php7的新特性

1. null合并运算符(??)

??语法: 如果变量存在且值不为NULL,它就会返回自身的值,否则返回它的第二个操作数.

//php7以前  if判断
if(empty($_GET['param'])) {
      $param = 1;
}else{
    $param = $_GET['param'];
}

//php7以前  三元运算符
$param = empty($_GET['param']) ? 1 : $_GET['param'];

//PHP7  null合并运算符
$param = $_GET['param'] ?? 1;//1

READ MORE →

RSA公私钥的理解和示例说明与php中的使用

先放重点:公钥和私钥是成对的,它们互相解密。

公钥加密,私钥解密。

私钥数字签名,公钥验证。

READ MORE →

PHP Trait特性

php类的单继承性,无法同时从两个基类中继承属性和方法,为了解决这个问题,使用Trait特性解决.

Trait是一种代码复用技术,为PHP的单继承限制提供了一套灵活的代码复用机制.

用法:通过在类中使用use 关键字,声明要组合的Trait名称,具体的Trait的声明使用Trait关键词.  注意:Trait不能实例化

READ MORE →

mysql的主从复制

概念:

MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。

READ MORE →

MySQL的慢查询日志总结

我们程序员可以定义一个时间界限(如:3s),只要有sql语句的执行时间超过我们所规定的时间界限,就会被记录在日志文件里面,我们就可以在日志文件中找出这些有问题的sql语句,从而优化它。

READ MORE →

MySQL的profile工具

使用profile工具,可以查看出某条sql语句所花费时间消耗在哪里

READ MORE →

mysql的explain执行计划

explain可以帮助我们分析select语句,让我们知道查询效率低下的原因,从而改进我们的查询

READ MORE →

系统吞吐量、TPS(QPS)、用户并发量概念和公式

**QPS: **每秒钟处理完请求的次数;注意这里是处理完。具体是指发出请求到服务器处理完成功返回结果。

**TPS:**每秒钟处理完的事务次数。

并发量:系统能同时处理的请求数。

RT:响应时间,处理一次请求所需要的平均处理时间。

计算关系:

QPS = 并发量 / 平均响应时间

并发量 = QPS * 平均响应时间

SQL语言概念

SQL:Structured Query Language,结构化查询语言!

DDL:Data Definition Language,数据定义语言!

主要是用来定义和维护数据库的各种对象(比如库、表、索引和视图等),也可以说操作的层次是在数据库和表的逻辑结构和存储结构上面,并没有对表中的实际的数据进行操作!

DML:Data manipulation Language,数据操作语言

主要是对表中的记录进行增删改查的操作!

DCL:Data Control Language,数据控制语言

主要是对数据库进行统一控制和统一管理的工作,比如并发控制、存取控制、安全控制等;具体的有:数据库的权限管理,数据的备份与恢复等!

mysql的索引

分类:

  1. 主键索引:一个表只能有一个主键索引,但是可以有复合主键索引.
  2. 普通索引:一个表可以有多个普通索引.
  3. 全文索引:只有(varchar,text英文)myisam引擎才有(mysql5.6版本后也有),只对英文有效,对中文索引采用sphinx来操作
  4. 唯一索引:一个表可以有多个唯一索引,就是字段的值不可以相同(一般使用程序控制一个字段的唯一性)
  5. 复合(多列、联合)索引:由多个字段组成的索引

READ MORE →