白癜风早期怎么治疗 http://pf.39.net/bdfyy/bdfyw/150102/4549564.html前言MySQL数据库承载了掌门绝大部分核心业务的数据存储,因此MySQL数据库的稳定运行至关重要。DBA团队一直致力于保障数据库环境的平稳运行,编写有掌门MySQL数据库规范文档,也提供有掌门数据库查询上线运维平台。规范虽然很全面,但是如果不了解数据库原理,不知道规范带来的效率提升,开发人员并不一定会严格遵守,规范也就失去了意义。本篇文章旨在从数据库原理出发,从三个角度(建表、索引、SQL语句)进行深入分析,在了解数据库底层原理的基础上,理解数据库规范、以及数据库优化方法。一、建表如果把MySQL数据库实例看作是一个图书馆,数据表就可以看作一本本的书。书名如同表名,概述用途,需要取的易懂且有意义;书本内容过多会选择分册发行,数据表也可以选择分表或者分区。开发人员需要根据实际的业务场景、数据量大小设计不同的表,来满足业务需求。关系型数据库的数据字段后续更改代价较高,因此需要在前期设计阶段就需要考虑用途并设计合理的表结构。优秀的表结构设计,是数据库优化中非常重要的一环。数据表设计需要遵循以下规范要求:1.字符集规范:数据库表字符集统一设置为utf8mb4,排序规则为utf8mb4_general_ci。由于DBA已统一按照字符集utf8mb4,排序规则utf8mb4_general创建数据库,因此表和字段的字符集可以不再额外设置,保持默认与数据库配置相同即可。解析:1.当字符集或者排序规则不一致时,会导致表无法关联查询2.如果进行字符转换,会导致索引失效,而且也会额外消耗数据库性能3.统一的字符集和排序规则设置,能减少不必要的字符集问题
1CHARSET=utf8mb4COLLATE=utf8mb4_general_ci2.主键ID规范:必须创建无符号(unsigned)自增(auto_increment)整形(int或bigint)主键ID字段解析:1.自增主键非常适合MySQL数据库聚簇索引数据结构2.Int类型长度为4字节,bigint为8字节,数据长度较小,较小的字符类型可减少主键长度(后续在索引章节详解)3.无符号相比默认有符号数据量存储可大一倍,无符号int类型可存放42亿行数据,足够掌门一般应用所需
1idintunsignednotnullauto_increment