1.存储层:存储引擎 字段选取 3范式
2.设计层:索引 外键 分区 分表
3.语句层:单表sql优先,链表sql时使用唯一索引和主键
4.架构层:分布式部署(主从模式/共享模式)
存储引擎
- 数据表存储的一种格式
InnoDB 支持事务 支持外键 支持行级锁
show engines; 查看存储引擎
1. Engine 引擎名称
2. Support 为引擎支持情况 不支持FEDERATED引擎 InnoDB为默认引擎
3. Comment 描述 InnoDB(“Supports transactions, row-level locking, and foreign keys”) 支持事务,行级锁,外键
4.Transactions事务 XA事务 Savepoints事务保存点,只用InnoDB支持
MyISAM
MyISAM 存储文件结构 frm为table表结构文件 MYD为table表数据文件 MYI为table表索引文件
InnoDB
InnoDB 存储文件结构 frm为table表结构文件 idb为InnoDB表数据/索引文件
show variables like ‘innodb_file_per_table%’; 查看InnoDB是否分表 如果OFF关闭 所有数据/索引文件将存储到一个文件中
数据的写入
写入MyISAM表格数据时
读出MyISAM数据时和写入顺序的一致
MyISAM写入时不会进行排序,写入速度快.写入InnoDB数据库时数据会按主键顺序排序
InnoDB写入时会进行排序,写入速度较MyISAM慢
并发性
MyISAM 并发性低,多人请求时慢,整表锁机制.
InnoDB 并发性高,速度,效率高,行表锁机制
MyISAM数据压缩
插入5000万条数据并将数据
由内存更新到磁盘
数据文件大小
使用myisampack 压缩工具对myisam表进行压缩,压缩百分比为55.89%