美文网首页
MySQL笔记整理(一)

MySQL笔记整理(一)

作者: guaren2009 | 来源:发表于2020-05-11 14:16 被阅读0次

一、MySQL建表规范

模板示例:

create table 表名(

id int(11)  not null auto_increment comment 'id自增长', 

name varchar(255) comment '姓名',

age int(3) comment '年龄',

.....

.....

create_user varchar(255) comment '创建人',

create_time timestamp not null default current_timestamp comment '创建时间',

update_user varchar(255) comment '更新人',

update_time timestamp not null default current_timestamp on update current_timestamp comment '更新时间',

primary key(id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '表注释';

具体示例:

create table ruoze_t1(

id int(11)  not null auto_increment comment 'id自增长', 

name varchar(255) comment '姓名',

age int(3) comment '年龄',

create_user varchar(255) comment '创建人',

create_time timestamp not null default current_timestamp comment '创建时间',

update_user varchar(255) comment '更新人',

update_time timestamp not null default current_timestamp on update current_timestamp comment '更新时间',

primary key(id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 comment '表注释';

二、注意点

2.1、表名称和字段不要用中文或者拼音

2.1、要有固定统一的风格

与系统中原有的表保持风格一致

2.3、第一个字段必须是id主键自增,无业务意义

主要参考 https://www.jianshu.com/p/b8d6d809fce3

(1)主键自增节省存储空间

相对于UUID做主键,用自增id做主键更节省空间,尤其是Innodb引擎下,二级索引中存储的是主键的值,这样也可以减小索引的大小

(2)对Innodb这种聚集型索引友好

Innodb这种聚集索引,数据是按照主键进行排序的。而UUID的无序性导致在插入数据的时候,在Innodb引擎的情况下,IO压力较大,插入效率降低

2.4、一张表只有一个主键

2.5、创建人、创建时间 、更新人、更新时间务必加上

2.6、comment注释务必加上

实际生产中,表和字段没有注释实在是太坑了

2.7、明确指定engine和charset字符集

这个是经常遇到的坑,如果不明确指定,引擎和字符集会按照所在库的引擎和字符集来设置,容易引发一些问题,例如字符集默认是latin1导致中文乱码

我们生产中(MySQL5.6)因历史遗留问题,一个库的引擎建为MyISAM,而以前建表的时候没有指定引擎,也没人在意这个,导致库中存有大量的MyISAM表,而某次的MySQL意外宕机,导致表损坏,查询数据时出现:Incorrect key file for table: '...'. Try to repair it的问题,修复起来是真的慢。

从实践认知来看,MyISAM引擎除了事务、锁等与Innodb有不同以外,MyISAM的表更易损坏

相关文章

  • MYSQL语句执行大体流程

    学习笔记是学习了 极客时间 - 《MySQL实战45讲》整理的笔记。 MYSQL简单架构 MySQL 可以分为 ...

  • MySQL笔记整理(一)

    一、MySQL建表规范 模板示例: create table 表名( id int(11) not null au...

  • MySQL索引(一)

    学习笔记是学习了 极客时间 - 《MySQL实战45讲》整理的笔记。 在 MySQL 中,索引是在存储引擎层实现...

  • MySQL逻辑架构简介

    @[toc]最近在看《高性能MySQL》一书,并做了笔记,整理成博客,分享出来: 一、逻辑结构简介 Mysql服务...

  • 史上最全的mysql基础入门教程

    完整的demo和笔记整理传送门 启动与停止 启动mysql服务sudo /usr/local/mysql/supp...

  • MySQL Index 是如何工作的

    最近在读MySQL的技术内幕, MySQL的Index之前在MySQL读书笔记的混乱整理中简单提到过, 简单介绍了...

  • MySQL 学习笔记--基本操作

    这里整理一下MySQL的相关笔记,第一步当然是MySQL的安装,MySQL的安装其实非常简单,在Oracle my...

  • JDBC 编程学习

    前言 将最近学习的JDBC编程整理成笔记,做次记录。 mysql 安装 首先安装mysql 8.0.19 版本数据...

  • 【MySQL面试第二弹】MySQL 服务占用cpu 100%,如

    推荐阅读学习:MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒! 一、引子 对于互联网公司,...

  • MySQL 学习实践笔记(四)

    MySQL 学习实践系列 MySQL 学习实践笔记(一) MySQL 学习实践笔记(二) MySQL 学习实践笔记...

网友评论

      本文标题:MySQL笔记整理(一)

      本文链接:https://www.haomeiwen.com/subject/axdunhtx.html