这里简单谈谈数据库连接引擎那点事儿
在数据库实际操作过程中,我们很少涉及到数据库引擎对象的事情,一般情况在创建数据库的时候都使用默认的InnoDB数据库引擎,那么到底什么是数据库引擎,有什么样的数据库引擎,在实际使用的过程中都有什么主意事项,为什么InnoDB作为默认的数据库引擎,都是我们需要特别注意但是不需要太多操作的问题!
1. 什么是数据库引擎
数据库引擎定义了数据库存储数据的数据结构特点,主要通过指定的数据库引擎对象来限制数据库操作数据不同方式的效率、锁和事务的支持、数据全文检索的支持、数据集的缓存操作等等特性。
2. 常见的数据库引擎
比较常见的数据库引擎对象主要有两种,一种是常见的InnoDB,另一种是很多人经常提到但是很少用到的MyIASM。
两种数据库引擎都是通过B+树实现了数据库中最重要的数据索引
3. 两种常见数据库引擎的区别和区分
3.1. INNODB引擎
InnoDB使用B+树完成数据库索引的实现,但是在数据存储时数据结构中存储的是实际数据,被称为聚集索引的东东,不支持全文检索,启动也是比较慢的。
InnoDB引擎支持ACID事务的支持,提供了行级锁和外键约束,设计目标是处理大容量数据库系统,处理过程中会在内存中建立数据库缓冲区用于缓存数据和索引数据。但是如果进行select count(*) from <table_name>时,会进行全表扫描,不会缓存扫描结果;同时在高并发的情况下,由于InnoDB引擎支持的锁的粒度较细,不会在写操作时全表锁定,有利于高并发下性能的提升。
3.2. MYIASM引擎
MyIASM使用B+树完成数据库索引的实现,但是在数据存储时数据结构中存储的是实际数据的地址,被称为非聚集索引,支持全文检索
MyIASM不支持事务操作,不支持行级锁和外键的约束;在进行select count(*) from <table>操作时会缓存数据,不会进行全表扫描。
3.3. 使用区分
如果我们的数据库存储大量数据,需要支持事务操作和外键约束,同时在出现故障需要快速恢复时,使用InnoDB引擎;
如果我们的数据库中需要大量而频繁的的insert语句操作时,可以选择MyIASM数据库引擎