mysql注意事项 - 持续补充
1. 基础篇
1. 所有表都应该有三个字段,id,create_time, update_time
2. float,double,decimal区别
3. VARCHAR 是可变长字符串,不预先分配存储空间,长度不要超过 5000。如果存储长度大于此值,定义字段类型为 TEXT,独立出来一张表,用主键来对应,避免影响其它字段索引效率
4. MySQL会给唯一约束的列上默认创建一个唯一索引
5. 阿里规范:不得使用外键与级联,一切外键概念必须在应用层解决。
2. 进阶篇
1. 创建一个新表时,InnoDB会创建两个文件,表名.frm和表名.idb,frm存储表结构,idb存储数据和索引(5.6.6版本以后默认)
2. 创建一个新表时,MyIsam会创建三个文件
test.frm 存储表结构
test.MYD 存储数据 (MYData)
test.MYI 存储索引 (MYIndex)
3. mysql架构
1. 连接层,与客户端的连接
2. 服务层,缓存,解析器,优化器等
3. 引擎层,存储引擎
4. 查询缓存缺点(8.0取消了缓存)
命中率不高,它要求每次都必须是同样的sql(字符串),差一个空格都不行
当我们把一条数据删除之后,如果还走缓存,就会出现错误的情况
5. Innodb与myisam
innodb支持事务,外键,行级锁,对内存要求高,当数据量较大时,使用innodb。myisam,数据量较小,且基本是插入和查询操作时使用