选择合适的存储引擎
一、选择合适的存储引擎
在开发中,我们经常使用的存储引擎 myisam / innodb/ memory
MyISAM存储引擎
如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎. 比如 bbs 中的 发帖表,回复表。
INNODB存储引擎:
对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表。
Memory 存储
我们数据变化频繁,不需要入库,同时又频繁的查询和修改,我们考虑使用memory, 速度极快。
问 MyISAM 和 INNODB的区别(主要)
1.事务安全 myisam不支持事务而innodb支持。
2.查询和添加速度 myisam不用支持事务就不用考虑同步锁,查找和添加和添加的速度快。
3.支持全文索引 myisam支持innodb不支持。
4.锁机制 myisam支持表锁而innodb支持行锁(事务)。
5.外键 MyISAM 不支持外键, INNODB支持外键. (通常不设置外键,通常是在程序中保证数据的一致)。
二、数据库优化之创建合适的索引?
索引(Index)是帮助DBMS高效获取数据的数据结构。
分类:
普通索引/唯一索引/主键索引/全文索引
普通索引:允许重复的值出现。
唯一索引:除了不能有重复的记录外,其它和普通索引一样(用户名、用户身份证、email,tel)。
主键索引:是随着设定主键而创建的,也就是把某个列设为主键的时候,数据库就会给该列创建索引。这就是主键索引.唯一且没有null值。
全文索引:用来对表中的文本域(char,varchar,text)进行索引, 全文索引针对MyIsam
explain select * from articles where match(title,body) against(‘database’);【会使用全文索引】