MySQL-总结
引擎类型
与其他 DBMS 一样,MySQL 有一个具体管理和处理数据的内部引擎。在你使用 CREATE TABLE 语句时,该引擎具体创建表,而在你使用 SELECT 语句或进行其他数据库处理时,该引擎在内部处理你的请求。多数时候,此引擎都隐藏在 DBMS 内,不需要过多关注它。但 MySQL 与其他 DBMS 不一样,它具有多种引擎。它打包多个引擎,这些引擎都隐藏在 MySQL 服务器内,全都能执行 CREATE TABLE 和 SELECT 等命令。为什么要发行多种引擎呢?因为它们具有各自不同的功能和特性,为不同的任务选择正确的引擎能获得良好的功能和灵活性。
以下是几个需要知道的引擎:
- InnoDB 是一个可靠的事务处理引擎,它不支持全文本搜索;
- MEMORY 在功能等同于 MyISAM,但由于数据存储在内存中,速度很快(特别适合于临时表);
- MyISAM 是一个性能极高的引擎,它支持全文本搜索,但不支持事务处理。
外键不能跨引擎 混用引擎类型有一个大缺陷。外键(用于强制实施引用完整性,如第1章所述)不能跨引擎,即使用一个引擎的表不能引用具有使用不同引擎的表的外键。
复杂的表结构更改一般需要手动删除过程
它涉及以下步骤:
❑ 用新的列布局创建一个新表;
❑ 使用 INSERT SELECT 语句(关于这条语句的详细介绍,请参阅第 19 章)从旧表复制数据到新表。如果有必要,可使用转换函数和计算字段;
❑ 检验包含所需数据的新表;
❑ 重命名旧表(如果确定,可以删除它);
❑ 用旧表原来的名字重命名新表;
❑ 根据需要,重新创建触发器、存储过程、索引和外键。