range

If there were you, the world would be just right

type显示查询使用了何种查询范围,主要有以下几种,从最好到最坏依次是:

system > const > eq_ref >ref > range > index > ALL

system:

表只有一行记录(等于系统表),这是const类型的特例,平时不会出现,这个也可以忽略不计

const:

表示通过索引一次就找到了,const用于比较primary key或者unique索引。因为只匹配一行数据,所以很快如将主键置于where列表中,mysql就能将查询转换为一个常量

eq_ref:

类似ref,区别在于使用的是唯一索引,使用主键的关联查询

ref:

使用非唯一索引扫描或唯一索引前缀扫描,返回单条记录,常出现在关联查询中

range:

索引范围扫描,常用语<,<=,>=,between等操作

index:

索引全扫描,index与ALL区别为index类型只遍历索引树。

all:

全表扫描,将遍历全表以找到匹配的行

模式

cli模式下:

模块初始化阶段
请求初始化阶段
脚本执行阶段
请求关闭阶段
模块关闭阶段

FastCgi模式下:

启动时执行一次模块初始化阶段
接下来的各个请求只会执行请求初始化阶段、脚本执行阶段、请求关闭阶段

阶段说明

MINIT(module init 模块初始化)

启动 PHP 输出、初始化垃圾回收器
启动 Zend 引擎、注册 Zend 核心扩展、Zend 标准常量
解析 PHP.ini,映射 PHP.ini 相关配置
注册静态、动态编译的扩展
回调各扩展定义的 module starup 钩子函数
用一句话来说,就是初始化类、常量、扩展等 PHP 所用到的资源

RINIT(request init 请求初始化)

PHP 初始化脚本执行的基本环境,SAPI 将控制权交给 PHP,激活 Zend 引擎,初始化执行器

PHP 脚本执行

Zend 引擎接管控制权,将 PHP 脚本编译成 Opcodes,并顺序执行

RSHUTDOWN (request shutdown 请求结束)

PHP 脚本执行完之后进入请求结束阶段,PHP 启动清理程序,这个阶段,将 flush 输出内容,发送 http 响应内容,关闭 PHP 执行器

MSHUTDOWN(module shutdown 模块关闭)

这个阶段主要是进行资源的清理、php 各模块的关闭操作,同时,将回调各扩展的 module shutdown 钩子函数,这是发生在所有请求都已经结束之后,例如关闭fpm的操作。

char 与 varchar 区别与查询速度比较 ?

varchar 是变长,char 是定长 ,varchar 更节省空间
char 查找效率要 varchar 型快,因为 varchar 是非定长,必须先查找长度,然后进行数据的提取,比 char 定长类型多了一个步骤,所以效率低一些

写出三种以上MySQL数据库存储引擎的名称

MyISAM、InnoDB、BDB(Berkeley DB)、Merge、Memory(Heap)、Example、Federated、Archive、CSV、Blackhole、MaxDB 等等十几个引擎

每个单词首字母大写

ucwords 

用什么方法来加快页面的加载速度?

数据库添加索引,
页面可生成静态,
图片等大文件单独服务器。
使用代码优化工具。

阅读剩余部分...


简介

由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时 dump到磁盘上的RDB持久化),另外一种是AOF(append only file)持久化(原理是将Reids的操作日志以追加的方式写入文件)。

1 RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。

2 AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。 Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小。

3 Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集, 因为 AOF 文件保存的数据集通常比 RDB 文件所保存的数据集更完整。

4 你甚至可以关闭持久化功能,让数据只在服务器运行时存在

阅读剩余部分...