文章目录
建立数据库注意事项
字符集用utf8mb4
- 最初的 UTF-8 格式使用一至六个字节,最大能编码 31 位字符。最新的 UTF-8 规范只使用一到四个字节。
- 字符集
utf8
:是 Mysql 中的一种字符集,只支持最长3
个字节的 UTF-8字符。 - 字符集
utf8mb4
: 支持最长4
个字节的 UTF-8字符。为了获取更好的兼容性,应该总是使用utf8mb4
而非utf8
。 utf8mb4
中的mb4
即most bytes 4,utf8
是utfmb3
的简称。- 表情符号(Emoji 表情)就是
4
字符的UTF-8字符。
存储引擎尽量用InnoDB
重要特性:
- 事务安全(MyISAM不支持事务,InnoDB支持事务)
- 外键 MyISAM 不支持外键, InnoDB支持外键.
- 锁机制(MyISAM时表锁,InnoDB是行锁)
- 查询和添加速度(MyISAM批量插入速度快)
- 支持全文索引(MyISAM支持全文索引,InnoDB不支持全文索引)
- MyISAM内存空间使用率比InnoDB低
建议:
- 尽量使用InnoDB存储引擎
科学的添加表的索引
- 索引优化应该是对查询性能优化最有效的手段。
- mysql只能高效地使用索引的最左前缀列。
- mysql中索引是在存储引擎层而不是服务器层实现的
1. mysql索引种类:
①单列索引:一个索引只包含单个列,一个表可以有多个单列索引
②组合索引:一个索引包含多个列
2.索引的创建需要确保索引是引用在sql查询语句上
3.增加索引的优点:
①可以大大提高查询效率
②可以提高Mysql的检索速度
4.增加索引的缺点:
①增加索引会降低更新表的速度,如执行insert,update,不仅要保存数据,还要保存索引文件
②索引会占用磁盘空间的索引文件
5.添加索引,如图:
数据库维护
数据库工具NavicatPremium
百度网盘:NavicatPremium ,提取码:i1jg,是英文版,含注册机
这个是很常用的数据库管理工具,支持Mysql,MsSql,Sqlite等数据库,界面截图如下。
开启慢日志
当线上的数据库进行占CPU较高时,怎么样找出哪条数据库SQL执行慢呢,通常采用的方法是开启慢日志。
show variables like 'slow_query%';
show variables like 'long_query_time';
set global slow_query_log=ON;
set global long_query_time=2;
show status like "%slow_queries%";
查看连接数和正在执行的SQL
查看information_schema
表中的PROCESSLIST
表,如图:
分析SQL慢的方法
数据库语名前添加EXPLAIN
,反馈使用的索引以及数据库内部的实现方案,如图: