MySQL常用的二种引擎:
Innodb引擎:Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。(事务四个特性简称ACID)。Innodb设计的目标就是处理大数据容量的数据库系统。它本身实际上是基于Mysql后台的完整的系统 。
Mysql运行的时候,Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是,该引擎是不支持全文搜索的。同时,启动也比较的慢,并且它是不会保存表的行数的。当进行Select count(*) from table指令的时候,需要进行扫描全表。
大容量的数据集时趋向于选择Innodb。因为它支持事务处理和故障的恢复。Innodb可以利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的
适应场景:当需要使用数据库的事务时,Innodb引擎就是首选。由于锁的粒度小,写操作是不会锁定全表的。并且在并发度较高的场景下使用会提升效率的
MyIASM引擎:它是MySql的默认引擎,但不提供事务的支持,也不支持行级锁和外键。因此当执行Insert插入和Update更新语句时,即执行写操作的时候需要锁定整个表。
所以会导致效率会降低。不过和Innodb不同的是,MyIASM引擎是保存了表的行数,于是当进行Select count(*) from table语句时,可以直接的读取已经保存的值而不需要进行扫描表。
适应场景:表的读操作远远多于写操作时,并且不需要事务的支持的。可以将MyIASM作为数据库引擎的首先。大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快, 但是UPDATE语句在Innodb下执行的会比较的快,尤其是在并发量大的时候
如何更换引擎?
方式一:创建表的时候就指定数据库引擎
1、指定数据库表引擎:
CREATE TABLE `caiji` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`url` varchar(200) NOT NULL,
`lanm` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE=MyISAM;
2、修改数据库表引擎:
alter table table表 engine=innodb;
方式二:更改默认引擎为Innodb的步骤方法
1、查看当前默认引擎:
2、修改Innodb为默认引擎:
2.1、在Mysql中的my.ini配置文件的[mysqld]下添加:
default-storage-engine=INNODB
2.2、重启MySQL
Windows下:
1.(快捷键Win+R)。CMD
2.启动:输入 net stop mysql
3.停止:输入 net start mysql
* Windows下不能直接重启(restart),只能先停止,再启动。
Linux下:
启动:# service mysqld start
停止:# service mysqld stop
重启:# service mysqld restart