MySQL的存取引擎

下面是MySQL服务器端的框架:

不同搜索引擎的区别主要在于三个方面,分别是存储,读取和锁。

事务是一组特定SQL语句的集合,事务的特性有ACID,即原子性,一致性,隔离性和持久性。

 存储引擎的类型:

1,MyISAM:主要用于在线分析处理,即查询较多。不支持外键,支持表锁,支持全文索引,B+树索引(数据和索引分离也就是非聚簇索引)是通过指针查找文件,不支持事务。常用的几个文件扩展名:.frm:建表信息,.myi:索引文件,.myd:数据

MyISAM中不一定有索引

2,InnoDB:主要用于在线事务处理。支持外键,支持行锁,B+树索引(聚簇索引),支持事务,不支持全文索引。

InnoBD中一定会建立索引,建立索引的原则是首先找主键,没有的话找唯一键,还没有的话就添加隐藏字段建立索引。InnoDB辅助索引查询会查询两次,第一次查询到主索引,然后查询辅助索引。

3,Memery:数据内存临时表(varchar   char),支持hash索引,不支持text,BLOB字段,万一需要用到,则需要加载到内存中去。

4,ARCHIVE不支持索引,适用于日志数据的存储,压缩存储的比例为10比1,只支持select与insert;

锁包括以下几种:共享读锁,独占锁,共享锁,排他锁,意向锁,间隙锁悲观锁,乐观锁等。

索引划分为:普通索引,主键索引,唯一索引,全文索引,组合索引(最左前缀原则)

varchar与char的区别:

varchar(20),不定长,最大能用20,但是开辟的大小依据实际使用的大小来确定;

char(20),固定20字节,无论事实上使用了多少都开辟20字节;

建立索引的SQL语句:create index_name on table (colummn(length))

猜你喜欢

转载自blog.csdn.net/shang_12266029/article/details/88652942