INNODB和MyISAM的区别

180 阅读2分钟

常用命令

SHOW CREATE DATABASE school  -- 查看创建数据库的语句
SHOW CREATE DATABASE student --查看student数据表的定义语句
DESC student --显示表的结构

关于数据库引擎

INNODB 默认使用的

MyISAM 早些年使用的

MyISAMINNODB
事物支持不支持支持
数据行锁定不支持,表锁支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大约为myisam两倍

常规使用操作:

~ MyISAM 节约空间 ,速度快

~ INNODB 安全性高,事物的处理,多表用户操作

在物理空间存在的位置:

所有的数据库文件都存在data目录下,一个文件夹对应一个数据库

本质还是文件的存储!

MySQL 引擎在物理文件上的区别

~ INNODB 在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件

~ MyISAM 对应的文件:

*.frm 表结构的定义文件

*.MYD 数据文件(data)

*.MYI 索引文件(index)

科普:

设置数据库表的字符集编码

CHARSET=utf8

不设置的话,会是MySQL默认的字符集编码~(不支持中文)

MySQL的默认编码是Latin1,不支持中文

修改方法:

  1. 在my.ini中配置默认的编码

    character-set-sever=utf-8
    

修改删除表

修改

修改表名 ALTER TABLE 旧表名 RENAME AS 新表名

ALTER  TABLE  student RENAME AS student1 

增加表的字段

增加的字段 ALTER TABLE 表名 ADD 字段名 列属性

ALTER  TABLE student1 ADD food INT(11)

修改表的字段 (重命名,修改约束!)

修改字段ALTER TABLE 表名 MODIFY 字段名 列属性

ALTER  TABLE student1 MODIFY food VARCHAR11

字段重命名

ALTER  TABLE student1 CHANGE food food1 INT(10)

结论:

change用来字段重命名,不能修改字段类型和约束;

modify不能用来字段重命名,只能修改字段类型和约束;

删除

删除表的字段 ALTER TABLE 表名 DROP 加字段名

ALTER   TABLE  student1 DROP food1

删除表(如果表存在就删除)

DROP TABLE IF EXISTS +表名

所有的创建和删除操作尽量加上判断,以免报错

注意点:

  1. ``字段名,使用这个包裹
  2. 注释--
  3. sql关键字大小写不敏感
  4. 所有符号用英文