一、存储引擎种类
1.分类:MyISAM、InnoDB、MEMORY、Archive
①InnoDB存储引擎(8.0)
特点:
从MySQL5.5版本之后,MySQL的默认内置存储引擎已经是InnoDB了,他的主要特点有:
(1)支持事务。
(2)使用行级锁,可以支持更高的并发;
(3)支持外键;
②MyISAM存储引擎
特点:
在5.5版本之前,MyISAM是MySQL的默认存储引擎,该存储引擎并发性差,不支持事务,所以使用场景比较少,主要特点为:
(1)不支持事务;
(2)不支持外键,如果强行增加外键,不会提示错误,只是外键不起作用;
(3)默认表级锁,所以并发度很差,加锁快,锁冲突较少,所以不太容易发生死锁;
(4)数据库所在主机如果宕机,MyISAM的数据文件容易损坏,而且难恢复;
③MEMORY存储引擎
特点:将数据库存在内存中和市场上的Redis,memcached等思想类似,为了提高数据的访问速度;
主要特点:(1)支持的数据类型有限制。比如:不支持Text和BloB类型,对于字符串类型的数据,只支持固定长度的行,varchar会被自动存储为char类型;
(2)仅支持select和insert操作,存入的数据就只能查询做修改和删除;
(3)只支持自增键上的索引,不支持其他索引;
④Archive存储引擎
特点:Archive引擎适合的场景有限,由于其支持压缩故主要用来做日志,流水等数据的归档;
主要特点:(1)支持zlib压缩,数据在插入表之前,会被先压缩
(2)仅支持select和insert操作,存入的数据就只能查询做修改和删除;
(3)只支持自增键上的索引,不支持其他索引;
2.select version(); #查看版本
show engines; #查看支持的引擎
3.mysql 8.0版本默认引擎是InnoDB;
mysql 5.5版本默认引擎是MyISAM;
4.(1)在mysql5.5版本中插入一个记录,插入一个没有的人和序号,则能运行出来,那么违反了外键约束,MyISAM的引擎不支持外键;
(2)在mysql 8.0版本中插入一条记录,插入一个没有的人和序号,则能运行出来(报错),这个InnoDB支持外键;
5.什么是事务?
事务对应生活中用户的操作就是一个业务。事务是用户操作数据库的基本单元,1个事务是由1到多条sql语句组成
(组成事务的sql命令的多少取决于业务的复杂程度)。组成事务的一组sql命令,要么一起成功,要么一起失败。
事务是为了保证业务操作的完整性和数据的安全一致性。
6.事务的特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
7.表级锁和行级锁
(1)表级锁:(依次操作,不能同时操作)
直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许
(2)行级锁:
某一条记录进行锁定,两个记录不冲突,可同时操作,若有冲突,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。
二、修改表存储引擎
语法:
show create table 表名; #查看当前表的存储引擎
修改已创建过的表:alter table 表名 ENGINE = 修改的存储引擎;
(二)创建表时指定存储引擎
CREATE TABLE 表名(
列名1 数据类型 [完整性约束条件],
列名2 数据类型 [完整性约束条件],
……
列名n 数据类型 [完整性约束条件],
)ENGINE=INNODB;
注:建议创表时直接指定存储引擎
(三)1、修改MySQL8.0版本的引擎
(1)alter table 表名 engine= myisam;
运行出来报错了不允许修改,因为有外键约束
(2)用创建表示指定存储引擎修改:
CREATE TABLE 表名(
列名1 数据类型 [完整性约束条件],
列名2 数据类型 [完整性约束条件],
……
列名n 数据类型 [完整性约束条件],
)engine=myisam;
2.修改MySQL5.5版本的引擎
(1)alter table 表名 engine= InnoDB;
运行成功,没有报错
(2)验证InnoDB引擎有没有用:
先插入一条数据,插入没有的人和序号
若插入成功,说明InnoDB引擎是没有用的
注:建议创表时直接指定存储引擎
3、创建完表后再修改引擎效果很差;要在创建外键表时,直接写一个存储引擎
三、图形化管理工具
1、种类
(1)phpMyAdmin(http://www.phpmyadmin.net/)
(2)SQLyog(http://sqlyog.en.softonic.com/ )
(3)Database Master
(4)Navicat
2、连接
(1)连接本地MySQL(正常连接)
(2)连接远程MySQL:点ssh 然后填写信息
3、生成E-R图模型