1.MyISAM(MySQL5.5) 不支持事物
表级锁
数据和索引分开存储
适合高速插入和检索(insert,select操作)
可压缩
表级锁
数据和索引分开存储
适合高速插入和检索(insert,select操作)
可压缩
支持全文索引
2.InnoDB 事务处理
行级锁
按照主键排序
支持外键,维护数据完整性(逐渐淡化)
考虑CPU效率和处理大数据的最佳性能
数据和索引存储在一起
5.6.4之后开始支持全文索引
MyISQM表级锁:开销小,加锁时间短.
InnoDB行级锁:开销大,加锁时间长
MyISAM和InnoDB的比较 InnoDB:数据完整性好,并发性好.支持事物,是默认表引擎,适合银行转账等数据安全要就较高的应用
MyISAM:压缩存储,适合insert和select的高并发插入应用,
除非InnoDB不支持的特性,否则优先选择InnoDB存储引擎.
MyISAM和InnoDB的比较 InnoDB:数据完整性好,并发性好.支持事物,是默认表引擎,适合银行转账等数据安全要就较高的应用
MyISAM:压缩存储,适合insert和select的高并发插入应用,
除非InnoDB不支持的特性,否则优先选择InnoDB存储引擎.
3.
字段类型
三大类
- 数值型(整数和浮点数) 整数 tinyint1 smallint2 mediumint3 int4 bigint8 Unsigned 浮点数(float4,double8) 定点数 decimal 用于金钱项目时
- 字符串型
- 时间型
选择字段类型 满足要求 尽量节省空间 varchar char 固定长度
4.添加索引
- 1.添加PRIMARY KEY(主键索引)
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
- 2.添加UNIQUE(唯一索引)
ALTER TABLE `table_name` ADD UNIQUE ( `column` )
- 3.加INDEX(普通索引)
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
- 4.添加FULLTEXT(全文索引)
ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
- 5.添加多列索引
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
5.删除索引
ALTER TABLE `table_name` DROP INDEX|UNIQUE|PRIMARY KEY `index_name` (column list);
6.查询缓存
mysql> show variables like '%query_cache%';
+------------------------------+---------+
| Variable_name | Value |
+------------------------------+---------+
| have_query_cache | YES |
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 1048576 |
| query_cache_type | OFF |
| query_cache_wlock_invalidate | OFF |
+------------------------------+---------+
6 rows in set (0.00 sec)
query_cache_type | OFF | 未开启查询缓存 需要在配置文件设置 query_cache_type=On|1
7.慢日志查询
需要在配置文件设置 query_cache_type=On|1
mysql> show variables like "%slow%";
| Variable_name | Value |
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |时间设定
| slow_query_log | OFF |是否开启
| slow_query_log_file | 慢日志记录 |
5 rows in set (0.00 sec)