![Image](https://box.kancloud.cn/251abe61f9562e95c8f64c31c2fbe4a4_333x279.png)
查看mysql中支持的全部存储引擎:show engines
#### innodb
数据库每个数据表的数据设计三方面信息:表结构、数据、索引
![Image](https://box.kancloud.cn/f25ae2eddf88a2739e997feb66054ebe_550x64.png)
技术特点:支持事务、行级锁定、外键
##### 表结构,数据,索引的物理储存
表结构文件
![Image](https://box.kancloud.cn/53f61270b791353ceaa5a382b6550787_378x124.png)储存位置,在mysql文件下面找
所有innodb表的数据和索引信息都存储在以下ibdata1文件中
![Image](https://box.kancloud.cn/8944bf40825ba61e3993f4d95e3b2239_380x235.png)
给innodb类型表 的数据和索引创建自己对应的存储空间:
默认情况下每个innodb表的 数据和索引 不会创建单独的文件存储
![Image](https://box.kancloud.cn/d716a7e8895da6770d598de44b0a5975_415x96.png)
设置变量,使得每个innodb表有独特的数据和索引 存储文件:
![Image](https://box.kancloud.cn/6f2207482c405c00c2d0ea862be3c1ee_351x38.png)
![Image](https://box.kancloud.cn/1a277175bba80de47936850134335b86_421x102.png)
重新创建一个表
(后期无论innodb\_file\_per\_table的设置状态如何变化,order2的数据和索引都有独立的存储位置)
![Image](https://box.kancloud.cn/962e40b4442e1c33c98fcf81d649dfff_425x175.png)
Mysql5.6版本有支持全文索引
##### 数据存储顺序
innodb表数据的存储是按照主键的顺序排列每个写入的数据。
![Image](https://box.kancloud.cn/d64375534d2091e1391d86c142252692_426x300.png)
该特点决定了该类型表的写入操作较慢。
##### 事物,外键
该类型数据表支持事务、外键
事务:把许多写入(增、改、删)的sql语句捆绑在一起,要么执行、要么不执行
事务经常用于与“钱”有关的方面。
四个特性:原子、一致、持久、隔离
具体操作:
start transaction;
许多写入sql语句
sql语句有问题
rollback;回滚
commit;提交
rollback和commit只能执行一个
外键:两个数据表A和B,B表的主键是A表的普通字段,在A表看这个普通的字段就是该表的“外键”,外键的使用有”约束”。
约束:以上两个表,必须先写B表的数据,再写A表的数据
并且 A表的外键取值必须来之B表的主键id值,不能超过其范围。
真实项目里边很少使用“外键”,因为有约束。
##### 并发性
该类型表的并发性非常高
多人同时操作该数据表
为了操作数据表的时候,数据内容不会随便发生变化,要对信息进行“锁定”
该类型锁定级别为:行锁。只锁定被操作的当前记录。
#### Myisam
##### 结构,数据,索引独立存储
\*.frm:表结构文件
\*.MYD:表数据文件
\*.MYI:表索引文件
该类型的数据表 表结构、数据、索引 都有独立的存储文件:
![Image](https://box.kancloud.cn/2ec35147188802a1ce34d9c9de00e774_286x71.png)
每个myisam数据表的 结构、数据、索引 都有独立的存储文件
特点:独立的存储文件可以单独备份、还原。
数据稳定后可以压缩数据信息
支持全文索引
##### 数据存储顺序
myisam表数据的存储是按照自然顺序排列每个写入的数据。
![Image](https://box.kancloud.cn/6a2feb988e3d70bc8390e831dd809dda_574x109.png)
该特点决定了该类型表的写入操作较快。
##### 并发性
该类型并发性较低
该类型的锁定级别为:表锁
##### 压缩机制
如果一个数据表的数据非常多,为了节省存储空间,需要对该表进行压缩处理。
复制当前数据表的数据:
开始压缩数据表的数据
//这里表名要带路径的F:\\phpstudy\\MySQL\\data\\php2\\order3 表名order3前面带路径
压缩工具:myisampack.exe 表名
重建索引:myisamchk.exe -rq 表名
解压缩工具:myisamchk.exe --unpack 表名
![Image](https://box.kancloud.cn/63934ae64a2cfae13fec7afa16ddc80a_528x149.png)
order3数据表有压缩,但是索引没有了:要重建索引
![Image](https://box.kancloud.cn/9e2b1aa6536eddf3d86cb803b485fa8d_531x88.png)索引重建完毕
出现情况:
压缩的数据表是只读表,不能写信息:
压缩的数据表有特点:不能频繁的写入操作,只是内容固定的数据表可以做压缩处理
存储全国地区信息的数据表
收货地址信息数据表
如果必须要写数据:就解压该数据表,写入数据,再压缩
解压order3数据表,使得其可以写入数据:
(解压同时索引自动重建)
![Image](https://box.kancloud.cn/2f91f3959bc91e9a94c06828db1b6b7b_537x78.png)
执行flush操作,更新解压后的数据:flush table 表名; //这边直接写表名就可以不带路径
该操作同时会删除order3.MYD.00996D46.deleted的压缩备份文件
innodb存储引擎:适合做修改、删除
Myisam存储引擎:适合做查询、写入
#### Archive
归档型存储引擎,该引擎只有写入、查询操作,没有修改、删除操作
比较适合存储“日志”性质的信息。
#### memory
内存型存储引擎,操作速度非常快速,比较适合存储临时信息,
服务器断电,给存储引擎的数据立即丢失。
#### 选择引擎
Myisam和innodb
网站大多数情况下“读和写”操作非常多,适合选择Myisam类型
例如 dedecms、phpcms内容管理系统(新闻网站)、discuz论坛
网站对业务逻辑有一定要求(办公网站、商城)适合选择innodb
Mysql5.5默认存储引擎都是innodb的
Myisam和Innodb存储引擎特点
Myisam
表结构、数据、索引 分别有对应的存储文件
写入数据非常快,安装自然顺序写入数据
数据稳定后可以压缩数据信息
支持全文索引
并发性:少低,锁表操作
Innodb
表结构有单独存储文件,数据和索引共享同一个存储文件(ibdata1、\*.ibd)
ibdata1 是全部innodb表的数据和索引的存储文件
\*.ibd 是每个innodb表的数据和索引的存储文件
支持事务和外键的
并发性:好,操作数据表时锁定记录(行)
Mysql5.6版本有支持全文索引
- PHP
- 页面跳转
- 数据类型和运算符
- 整形
- 浮点型
- 字符串型
- 布尔型
- 判断数据类型
- 传值
- 类型转换
- 常量
- 进制转换
- 运算符
- 各种结构
- 数组
- 分类
- 创建
- 多维数组
- 数组操作函数
- 数组指针
- 排序
- 数组交换需要注意的
- 函数
- 创建函数
- 参数传递
- 参数数量问题
- 返回值
- 可变函数
- 匿名函数
- 冒泡,选择,二分
- 变量的作用域
- 局部作用域中使用全局
- use
- 有关函数的系统函数
- 递归
- 递推(迭代)
- 面向对象
- 类和对象
- 值传递
- 引用传递
- 成员
- 构造和析构调用上级同类方法
- 重写
- 最终类
- 最终方法
- 设计模式
- 抽象类
- 抽象方法
- 抽象类和抽象方法的细节
- 重载
- 接口
- 类和接口的总结
- 自动加载
- 克隆
- 对象的遍历
- 内置标准类
- 其他类型转对象类型
- 类型约束
- 魔术方法
- static关键字
- 命名空间
- 子级空间
- 引入机制
- 公共空间
- 使用注意
- 错误处理
- 错误的触发
- 错误报告的显示
- 错误日志的记录问题
- 自定义错误处理器
- 异常抛出
- 文件锁
- 文件处理
- 序列化与反序列化
- 目录操作
- 文件操作
- 文件上传
- $_FILFS
- 多文件上传处理
- 绘图技术
- 创建画布资源
- 操作画布
- 导出
- 销毁资源
- 验证码
- 补充文件居中
- 在图像上写入一行TTF字体的文本
- 获得图像相关信息
- 水印
- 等比例缩放
- 常见错误
- HTTP协议
- URL的构成
- 请求
- 防盗链
- 响应
- 使用header()禁用缓存
- 下载文件的HTTP响应头
- 文件下载
- HTTPS
- 会话技术
- cookie
- session
- PHP操作MySQL函数
- 登录
- 一些函数
- 从结果集中取出一行数据
- 获取行数,列数,字段名
- 安全
- 缓存
- 补充
- MySQL
- 语法
- 备份和恢复
- 注释
- 语句行
- 字符集
- 校验级
- 存储引擎
- 数据库操作
- 创建数据库
- 删除数据库
- 显示数据库
- 修改数据库
- 数据类型
- 整数类型
- 小数类型
- 日期时间型
- 字符和文本型
- enum类型
- set类型
- 时间类型
- 表操作
- 创建
- 索引
- 约束
- 表选项列表
- 表的其他语句
- 视图语法
- 增删改查
- 插入数据(增)
- 删除数据(删)
- 修改数据(改)
- 查询(查)
- 用户和权限管理
- 用户管理
- 权限管理
- PDO
- 与PDO相关的几个类
- 连接数据库
- 使用
- PDO的错误处理
- PDO结果集对象
- pdo结果集对象的常用方法
- PDO预处理
- 常用属性
- mysql编程
- 事务
- 语句块
- mysql中的变量
- (存储)函数
- 存储过程procedure
- 触发器(trigger)
- mysql优化
- 存储引擎
- 字段类型
- 逆范式
- 索引
- Memcache
- 与redis区别
- 安装
- php开启扩展
- php操作memcache
- Key的命名
- 有效期
- 各种数据类型存储
- 删除
- 第三个参数压缩作用
- 其他相关操作方法
- 终端命令操作方式
- 获取memcache统计信息
- Git
- 创建一个git仓库
- 添加
- 修改文件
- 删除文件
- 克隆
- 个人网站
- Ajax
- 发起请求
- 接受响应
- 常用属性和方法
- get和post
- get
- post
- 同步和异步
- 什么时候使用同步请求?
- 分页
- xml的接收和处理
- JSON
- 无刷新表单提交和进度条
- JQuery操作ajax
- iframe
- 邮件
- 介绍
- 发送邮件
- 直投邮件
- 中转邮件发送
- phpmailer
- 正则表达
- 简单使用
- preg_match()
- 正则内容
- 定义字符集
- 特别字符集
- 组合字符集
- 限制字符
- 模式修正符
- 进行全局匹配