一,数据库引擎:数据库存储和处理数据的核心服务
查看mysql支持的引擎:

SHOW ENGINES;


可以看到画红线的部分都是MySQL支持的引擎,二绿线的InnoDB是默认的引擎。那为什么默认的引擎是innodb?打开MySQL,找到my.ini文档,里面的默认引擎是innodb。

二,不同的数据库引擎的性能是不一样的。
我们都知道创建一个数据库就是创建了一个文件夹
创建一张表会创建什么呢?
在myisam引擎下创建表会生成3个文件
把f3的引擎修改成myisam

CREATE TABLE f3(d INT,s VARCHAR(20))ENGINE MYISAM

修改完引擎之后,我们发现在MySQL中的xx表下多了三个f3文件

Frm:存储的是表结构信息
Myd: 存放的是数据
Myi: 存放的是索引
我们给f3表里面批量添加数据

INSERT INTO f3(SELECT * FROM f3)

我们发现f3.myd文件里面的数据增长了,并且添加速度非常快

 DELETE FROM f3

我们再删除f3里面的数据,发现f3.myd文件里面的数据不见了,并且删除速度非常快。由此我们发现myisam引擎下,表结构信息,表数据,索引是分开存放的。
三,我们用innodb引擎
默认的引擎就是innodb,但是我们还可以在后面追加引擎。
1,创建f5表

CREATE TABLE f5(d INT,s VARCHAR(20))

2,追加引擎:

ALTER TABLE f5 TYPE=INNODB

在innodb下创建表,此时我们发现只生成了一个文件
MySQL>data>xx>f5.frm,默认大小9KB
Frm:存储的是表结构信息
3,添加数据:

INSERT INTO f5 VALUES(1,'a')
INSERT INTO f5(SELECT * FROM f5)

添加数据后我们发现f5.frm没有增大,此时的数据存哪去了?
此时数据和索引存储在了一个叫ibdata1的文件下,这个ibdata1文件是被所有被innodb引擎修饰的表共享的一个文件
mysql>data>ibdata1
然后我们删除数据:

 DELETE FROM f5

发现ibdata1反而变大了,不仅没有删除,反而变大了。原因是删除数据的时候,反而增加了一些数据去记录这些被删除的数据。所以ibdata1文件只增不减
我们如果把这个数据库干掉了?

DROP DATABASE xx

发现数据文件大小还是没有变,所以这是很危险的,如果一直这样下去,你的磁盘会撑爆的,但是重要数据你又不能删库跑路。
这个时候,我们需要定期执行

 OPTIMIZE TABLE +表名

OPTIMIZE TABLE +表名: 清理表里面的垃圾碎片
运行结果:

此时我们发现,文件大小还是没有变。
发现ibdata1文件还清理不了,原因是ibdata1文件是被共享的,叫做共享表空间,而OPTIMIZE TABLE +表名只能操作独立表空间
四,这个时候我们就需要引擎独立空间设置
1,关闭MySQL
2,在my.ini文件下找到[mysql],在后面加上一句话innodb_file_per_table
3,重启MySQL
4,查看独立表空间是否这只ok

SHOW VARIABLES LIKE '%per_table%'


这样代表还是共享表空间。
原因是这也要改

改完就好了

此时生成两个文件

然后你再给表里添加数据你就会发现此时ibdata1文件不再增了,而是独立表空间下zyy.idb文件增加,当你删除数据后在OPTIMIZE TABLE +表名,zyy.idb文件又会变小
五,数据库三大范式(范式就相当一门艺术,跟着感觉走,偶尔也可以逆范式)
1nf:表中的字段不可再分,保持原子性,比如时间4.5-6.5,可以分成4月5和6月6
2nf: 先满足1nf,表中不能出现局部依赖(非主键列必须完全依赖与主键的个个列(复合主键))
3nf:先满足2nf,表中的非主键字段必须完全只能依靠主键列,不能在依靠其它非主键列
**###**如果没有满足这些方式就会出现表中表,设计表的初衷要是纯粹的,一个表就描述一个实体

MySQL008:数据库引擎,如何设置引擎独立空间相关推荐

  1. DX9贴图-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(11)

    DX9贴图 先准备2张图片,蜘蛛为m1.png,单眼怪物为m2.png 创建一个Form1.frm,输入如下源码: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体 ...

  2. DX9绘图-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(8)

    DX9绘图 前边讲了一些绘图基础,看不懂不要紧,其实我也看不懂哦.数学基础不好的话,确实不容易看懂,但只要懂的调用,能完成想要做的工作,那就马马虎虎吧,若是深入研究的话,建议买本计算机视觉艺术,计算机 ...

  3. DX9绘制虚线抗锯齿线-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(13)

    DX9绘制虚线抗锯齿线 划线扩展 绘制划线的实际效果图如下: 新建一个Form1,代码如下: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体的 BorderSty ...

  4. DX9显示文字-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(14)

    DX9显示文字 创建Form1,输入以下源码: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体的 BorderStyle 设置为"Fixed singl ...

  5. DX9光照效果-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(12)

    DX9光照效果 先准备好一张背景贴图砖片bgimg.png 然后在Form1.frm中放入如下代码: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体的 Borde ...

  6. DX9鼠标检测-------VB6编程学习DX9游戏编程DirectX9编程2D小游戏源码冷风引擎CoolWind2D游戏引擎(16)

    DX9鼠标检测 新建一个Form1,输入如下代码: Private Sub Form_Load()'新手注意:游戏编程中, '通常将窗体的 BorderStyle 设置为"Fixed sin ...

  7. python获取数据库查询的元数据_Python数据库、MySQL存储引擎、使用分区表、更改表结构、获取数据库元数据...

    :1. 数据库基本操作 1.1 创建数据库 - CREATE DATABASE test; #创建数据库 - GRANT ALL ON test.* to user(s); #为指定用户(或所有用户) ...

  8. mysql引擎模式_mysql引擎,完整的见表语句,数据库模式, 常用数据类型,约束条件...

    引擎 show engines : 查看引擎 innodb(默认引擎):支持事务,行级锁,外键myisam:查询效率由于innodb,不需要支持事务,行级锁,外键,可以选用myisam来优化数据库 m ...

  9. mysql的存储引擎_Mysql数据库3种存储引擎有什么区别?

    展开全部 MySQL常见的三种存储e68a843231313335323631343130323136353331333366306561引擎为InnoDB.MyISAM和MEMORY.其区别体现在事 ...

最新文章

  1. js动态创建元素之一--document.write
  2. linux之universal usb installer安装ubuntu
  3. JS兼容问题的函数封装文档
  4. 开源GIS(十五)——openlayers通过geoserver中WFS删除要素
  5. matlab细胞数组类型建立及操作
  6. 下列哪种不是python元组的定义方式_python笔试题
  7. 图像中有关位图、色位图、以及所占字节数
  8. Java——异常和断言
  9. macOS下R语言入门操作教程
  10. GaussDB Hash表分布列选择原则及数据倾斜检测
  11. 发声计算机在线,文字转语音软件(文字转语音真人发声免费版)
  12. IOS 项目性能优化
  13. 微信gif表情包在线编辑怎么做?
  14. 计算机固态硬盘与机械硬盘的区别是什么,电脑固态硬盘与机械硬盘的区别是什么,应该如何选择...
  15. H5 网络版坦克大战
  16. 实习每日总结_20161220
  17. Designing Principle
  18. 手游代理加盟最准解释来了
  19. 阿里浅尝元宇宙成功了吗?
  20. 微博验证码识别系列三:根据微博验证码图片建立模型

热门文章

  1. 20款简洁独特的logo设计
  2. 不同几种剔除(Culling)在渲染流程中的使用总结
  3. java实现程序等待一段时间的代码
  4. sohu_news搜狐新闻类型分类
  5. C++容器方法大汇总
  6. wfp 禁用ip_Win64 驱动内核编程-16.WFP网络监控驱动(防火墙)
  7. 数字内容安全实验一:使用Matlab编程实现 RSA 加密算法
  8. Android存储空间及路径总结
  9. 拳王虚拟项目公社:0成本卖虚拟教程资源,月入2万的兼职副业项目
  10. 微信订阅号和服务器,微信订阅号与服务号有什么不同?