下面是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))