1、先介绍MySQL的继续执行操作过程
介绍了MySQL的继续执行操作过程,我们才知道如何展开sql强化。
应用程序推送一条查阅句子到伺服器;伺服器先查阅内存,如果投弹内存,则立即回到储存在内存中的统计数据;未投弹内存后,MySQL通过URL将SQL句子展开导出,并聚合两颗相关联的导出树,MySQL导出器将采用MySQL句法展开校正和导出。例如,校正与否采用了严重错误的URL,或者URL的采用与否恰当;后处理是依照一些MySQL准则检查和导出树与否合理,比如尖萼和列与否存在,还会导出英文名字和别称,然后后CPU会校正职权;依照继续执行计划查阅继续执行发动机,初始化APIUSB初始化储存发动机来查阅统计数据;将结果回到应用程序,并展开内存;
2、资料库常用规范化
大部份资料库第一类中文名称要采用大写字母他用换行拆分;大部份资料库第一类中文名称明令禁止采用mysql留存URL;资料库第一类的重新命名要能努力做到见名识意,并且最后千万别超过32位数;临时库表要以tmp为后缀并以年份为后缀,存储表要以bak为后缀并以年份(时间戳)为后缀;大部份储存完全相同统计数据的入选为和列类型要完全一致;
3、大部份表要采用Innodb储存发动机
没有严格要求(即Innodb难以满足的功能如:列储存,储存空间统计数据等)的情况下,大部份表要采用Innodb储存发动机(mysql5.5之前预设采用Myisam,5.6以后预设的为Innodb)。
Innodb 全力支持外交事务,全力支持行级锁,更快的于贵君,高mammalian下操控性更快。
4、每个Innodb表要有位换行符
Innodb是一类检索组织机构表:统计数据的储存的方法论次序和检索的次序是完全相同的。每一表都可以有数个检索,但是表的储存次序只能有一类。
Innodb是按照换行符检索的次序来组织机构表的
千万别使用预览频密的列做为换行符,不适用于卡代纳换行符;千万别采用UUID、MD5、HASH、数组列做为换行符(难以保证统计数据的次序增长);换行符建议采用自增ID值;
5、资料库和表的字符集统一采用UTF8
兼容性更快,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集展开比较前需要展开转换会造成检索失效,如果资料库中有储存emoji表情的需要,字符集需要采用utf8mb4字符集。
6、查阅SQL尽量千万别采用select *,而是具体字段
select *的弊端:
增加很多不必要的消耗,比如CPU、IO、内存、网络带宽;增加了采用覆盖检索的可能性;增加了回表的可能性;当表结构发生变化时,前端也需要更改;查阅效率低;
的弊端: