《MySQL数据库应用与管理项目化教程》课件_项目2-2 应用数据库存储引擎--new.pptx
项目二初步使用数据库
教学目标
能力目标
◎能按需求选择合适的存储引擎、字符集,建立和修改应用数据库;
◎熟练应用指令查看数据库和字符集信息,并借助help帮助文档解决问题。
知识目标
◎熟悉常见字符集、排序规则的应用特点和建立修改数据库语句;
◎熟悉MySQL存储引擎特点和应用场合。
学习重点
◎建立、查看和修改数据库;
◎根据应用需要设置默认的存储引擎。
学习难点
◎根据应用需要修改合适的存储引擎。
任务目标
任务1查看和管理数据库
任务2应用数据库存储引擎
任务二
应用数据库存储引擎
应用数据库存储引擎
主要内容:
查看MySQL数据库可以使用的全部存储引擎
查看当前服务器的默认存储引擎
查看当前数据库表的存储引擎
修改数据库存储引擎;
各类存储引擎的特点和应用场景
重点难点:
各类存储引擎的特点和应用场景
任务2应用数据库存储引擎
理解存储引擎
存储引擎是MySQL重要组成部分,作用是指定表的类型,规定如何存储表数据、索引、是否支持事务,以及更新、查询数据等技术的实现方法。
ORACLE、SQLServer等数据库中所有数据存储机制都是一样的,只有一种存储引擎;
MySQL数据库提供了多种存储引擎,用户可以根据业务需求为表数据选择相应合适的存储引擎。
查询MySQL支持的存储引擎
查询MySQL支持的存储引擎
语法:SHOWENGINES;
参数说明:
Eengine:表示存储引擎的名称;
Support:MySQL支持的存储引擎,YES表示支持,DEFAULT表示默认的;如:InnoDB为MySQL5.5版本及以后默认的存储引擎,之前的版本是MyISAM;
Comment:表示关于此存储引擎的评论;
Transactions:表示此存储引擎是否支持事务。
例:mysqlSHOWENGINES;
查询当前MySQL默认存储引擎
通过配置参数查看:当前服务器默认的存储引擎
语法:SHOWVARIABLESLIKEdefault_storage_engine
例:mysqlSHOWVARIABLESLIKE%storage_engine%
查看表正在使用的存储引擎
语法:SHOWTABLESTATUS[FROM库名WHEREname=表名];
例:mysqlUSEmysql;
mysqlSHOWTABLESTATUS;
mysqlSHOWTABLESTATUSFROMmysqlWHEREname=user;
修改MySQL存储引擎
修改默认的存储引擎
创建新表是如果不指定存储引擎,则系统使用默认存储引擎;
修改默认存储引擎,在my.ini配置文件中设置参数:default_storage_engine,需重新启动服务生效。
例:#设置MySQL服务器的默认存储引擎
default_storage_engine=MyISAM
通过创建表、修改表指定表的存储引擎(下一章)。
常用的存储引擎
InnoDB
甲骨文公司开发的InnoDB,遵循GNU通用公开许可(GPL)发行。
InnoDB已经被重量级因特网公司所采用,如:雅虎、Google
InnoDB具有如下优点:
支持自动增长列
支持外键(FOREIGNKEY)
适合更新密集的表,适合出来多重并发的更新请求;
唯一支持事务的标准MySQL存储引擎,支持四个事务隔离级别,这是惯例敏感数据(如金融)的必需软件
自动灾难恢复。
提供高效的ACID能力(独立性:Atomicity、一致性:Consistency、隔离性:Isolaton、持久性:Durability)
支持分区、表空间,类似Oracle数据库,表空间文件以ibd结尾;
对硬件资源要求比较高的场合。
InnoDB适应的生产场景
业务需要事务的支持;
行级锁定对高并发有很好的适应能力,但需要确保查询时用过索引来完成。
业务数据更新较为频繁的场景,如论坛、微博、电子商务、金融系统及零售等。
业务数据一致性要求较高,例如:银行业务。
硬件设备内存较大,利用InnoDB较好的缓存能力来提高内存利用率,减少IO的压力。
MyISAM存储引擎
MyISAM存储引擎
MyISAM存储引擎基于ISAM,并对其进行扩展。具有较高的插入和查询速度,但不支持事务和外键约束。
每个使用MyISAM存储引擎创建的数据表都会生成3个文件,文件名和数据表名称相同,但扩展名不同,各个文件及其作用分别如下:
frm:存储表定义文件扩展名;
.MYD:存储数据文件扩展名;
.MYI:存储索引文件扩展名。
MyISAM适应的生产场景
应用场景:
业务不需要事务的支持,因为MyISAM没有事务;
但方面读取数据比较多、或单方面写入数据比较多的业务。因为MyISAM具有读写相互阻