-  MySQL数据库存储引擎 -  存储引擎概念 -  存储引擎也称为表类型 
-  通过不同的技术比如说,存储机制,索引技巧,锁定水平等等,来提供不同的功能。 
 
-  
-  查看MySQL支持的存储引擎 -  show engines\G; 
-  
 
-  
-  常用引擎比较 -   
-  对事务有需求 -  innodb 
 
-  
-  对写入,无索引查询有需求 -  myisam 
 
-  
-  memory不如使用非关系数据库 
 
-  
-  引擎选择 -  存储引擎是针对表来说的,选择什么样的存储引擎取决于表内数据的类型,一旦确定了存储引擎并开始使用后,在修改存储引擎会造成较大的麻烦。因此一定要结合需求来慎重决定存储引擎。 
 
-  
-  myisam存储引擎 -  文件 -  .frm 元数据(表结构) 
-  .MYD 表数据 
-  .MYI 表索引 
-   
 
-  
-  表级锁定 
 
-  
-  innodb存储引擎 -  文件 -  .frm 表结构 
-  .ibd 表数据与表索引 
 
-  
-  行级锁定,外键约束 -  当用模糊查询时还是会锁定表 where没有使用主键时。 
 
-  
-  优势 -  能够处理多并发的更新请求 
-  事务型存储引擎 
-  自动灾难恢复 
-  支持外键 
-  支持自增长设置 -  auto_increment 
-  一般设置为自增长的列就适合作为主键索引,或者唯一索引。 
 
-  
 
-  
 
-  
-  修改存储引擎的方法 -  方法一 -  alter table 表名 engine=引擎名; 
 
-  
-  方法二 -  修改配置文件/etc/my.cnf -  default-storage-engine=引擎名称 
 
-  
 
-  
-  方法三 -  创建时指定 -  create table 表名(字段,。。。)values (值,。。。)engine=引擎名称; 
 
-  
 
-  
-  方法四 -  临时修改,生效整个登录过程 -  set default_storage_engine=引擎名称 
 
-  
 
-  
 
-  
-  实验比较 -  从多个因素比较myisam与innodb的差异 
-  实验准备 -  创建库 -  create database auth 
-  进入到该库:use auth 
 
-  
-  创建表 -  create table tm(id int(20) primary key auto_increment,name char(30)) engine=myisam; 
-  create table ti(id int(20) primary key auto_increment,name char(30)) engine=innodb; 
-  将id列设为主键以及自动增长方便”存储过程“的编写。 
 
-  
-  创建存储过程 -  修改数据库结束符 -  delimiter $ 
 
-  
-  创建存储过程 -  create procedure insertm() begin set @i=1; while @i<=10000000 do insert into tm(name) values(concat("wy",@i)); set @i=@i+1; end while; end $ 
-  在创建第二个存储过程只需要将上个存储过程中的m修改为i即可表示时innodb的引擎。 
 
-  
-  最后修改回结束符 -  delimiter $ 
 
-  
 
-  
-  呼叫存储过程 -  call insertm 
-  call inserti 
-  从这个过程中可以明显的比较出两者的差异,myisam时快的多。 
 
-  
-  使用无索引搜索 -  select * from tm where name>"wy100" and name <"wy10000000" 
-  进行相关查询后发现myisam在无索引搜索方面有优势。 
 
-  
-  使用索引搜索 -  select * from tm where id>10 and id<999999; 
-  在这方面inonodb有较大优势 
 
-  
 
-  
 
-  
 
-  
将上述全部复制,粘贴到xmind即可看到条理性笔记。
