首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL 使用规范 —— 如何建好字段和索引

这包括;库表创建规范字段的创建规范、索引的创建规范以及SQL使用的相关规范,通过这些内容的讲解,让读者更好使用 MySQL 数据库,创建出符合规范的表和字段以及建出合适的索引。...二、库表规范 为了能让读者更加清晰地看到这些相关规范都是如何体现的,小傅哥这里准备了个大图,把库表字段规范全部整合在一起,方便学习使用。...如下; 如上所列规范包括:建表相关规范字段相关规范、索引相关规范、使用相关规范。 1. 建表相关规范 库名、表名、字段名,使用小写和下划线 _ 分割 库名、表名、字段名,不超过12个字符。...因为alter table会产生表锁,期间阻塞对于该表的所有写入 SELECT语句必须指定具体字段名称,禁止写成 “*”select * 会将不需要读的数据也从MySQL里读出来,造成网卡压力,数据表字段一旦更新...,但model层没有来得及更新的话,系统会报错 insert语句指定具体字段名称,不要写成 insert into t1 values(…) insert into…values(XX),(XX),(XX

74630
您找到你想要的搜索结果了吗?
是的
没有找到

mysql密码字段类型_MySQL 字段类型

万一我们需要对一个字段存储一个超出许可范围的数字,MySQL 会根据允许范围最接近它的一端截短后再进行存储。还有一个比较特别的地方是,MySQL 会在不合规定的值插入表前自动修改为 0。...unsigned 和 zerofill UNSIGNED 修饰符规定字段只保存正值,即无符号,而mysql字段默认是有符号的。...复合类型 MySQL 还支持两种复合数据类型 ENUM 和 SET,它们扩展了 SQL 规范。虽然这些类型在技术上是字符串类型,但是可以被视为不同的数据类型。...ENUM 类型字段可以从集合中取得一个值或使用 null 值,除此之外的输入将会使 MySQL 在这个字段中插入一个空字符串。...并且与 ENUM 类型相同的是任何试图在 SET 类型字段中插入非预定义的值都会使 MySQL 插入一个空字符串。

14.4K20

MySQL规范

数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql的保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要做到见名识意...测试环境直接连接生成环境数据库 数据库字段设计规范 1、优先选择符合存储需要的最小的数据类型 原因 列的字段越大,建立索引时所需要的空间也就越大,这样一页中所能存储的索引节点的数量也就越少也越少,...TEXT或BLOB类型只能使用前缀索引 因为MySQL对索引字段长度是有限制的,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值的。...语句的WHERE从句中的列 2、包含在ORDER BY、GROUP BY、DISTINCT中的字段 并不要将符合1和2中的字段的列都建立一个索引,通常将1、2中的字段建立联合索引效果更好 3、多表join...同时对于关联操作来说,会产生临时表操作,影响查询效率Mysql最多允许关联61个表,建议不超过5个。

1.3K20

MYSQl规范

不在数据库做运算:cpu计算务必移至业务层 控制单表数据量:单表记录控制在1000w 控制列数量:字段数控制在20以内 平衡范式与冗余:为提高效率牺牲范式设计,冗余数据 拒绝3B:拒绝大sql,...避免使用NULL字段 NULL字段很难查询优化 NULL字段的索引需要额外空间 NULL字段的复合索引无效 少用text/blob varchar的性能会比text高很多 实在避免不了blob...join 库名,表名,列名必须用小写,采用下划线分隔 abc,Abc,ABC都是给自己埋坑 库名,表名,列名必须见名知义,长度不要超过32字符 tmp,wushan谁TM知道这些库是干嘛的 建议将大字段...,访问频度低的字段拆分到单独的表中存储,分离冷热数据 禁止在where条件列使用函数或者表达式 禁止大表JOIN和子查询

43410

使用关键字作为字段名称

但由于Oracle中双引号内的字符串是区分大小写的,而不管创建表还是查询时,Oracle都会把字段名转成全部大写,所以,除非创建表时双引号内的字段名就是全大写的,否则以后查询时SQL语句都必须加双引号,...若不加则Oracle内部会把字段名转成全大写从而提示“无效的标识符”。...同理,查询普通字段也可以通过加双引号查询得出,但双引号内的字段名必须是全大写,例如SELECT "ANY_FIELD_NAME" FROM TableName 在SQL Server 中可以用方括号[]...字段名任何情况下都不区分大小写。 在MySQL 中用`(backticks)把表和列名名字围起来。字段名也不区分大小写。...在Hibernate 中必须在定义映射关系时用backticks(`)包围字段名,具体参考这里 或这里 。

1.6K10

数据库表字段命名规范

数据库表字段命名规范 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题...,所以有必要整理出一套合适的数据库表字段命名规范来解决优化这些问题。...(4)禁止使用数据库关键字,如:name,time ,datetime password 等 (5)字段名称一般采用名词或动宾短语 (6)采用字段名称必须是易于理解,一般不超过三个英文单词 (7)在命名表的列时...,不要重复表的名称 例如,在名employe的表中避免使用名为employee_lastname的字段 (8)不要在列的名称中包含数据类型 (9)字段命名使用完整名称,禁止缩写 3.2命名规范 ①名词 ...错误示例:uid    pid 说明:使用完整名称,提高可读性,修改为”user_id”,”person_id” 3.4字段类型规范 (1)所有字段在设计时,除以下数据类型timestamp、image

34.4K1710

MySQL 使用规范

不进行大表全表扫描; 进行更新或删除时,一万以下条数据最好使用 分批更新(计数 如 i 累加到500)(存储方式) 设计库 原则:不同业务按库划分 使用:innodb 存储引擎 设计表 一定要有主键 强烈建议字段为...NOT NULL,并设置默认值 禁止储存图片、文件、视频等 使用 tingint 代替 ENUM 禁止使用外键 少用拆分 BLOB、TEXT字段 控制 字段数量/尽可能小的字段/命名规范 字段类型 Tinyint...DECIIMAL - 精确数值,不是Float/Double int(3) - 后面的数字无意义 索引 index_表名_字段 联合索引字段建议不超过5个 单表索引数量5个以内 使用自增id作为主键...statement,提成性能,避免SQL注入 禁止使用 % 模糊查询(全表) 表中记录数 count(*) 用 join 链接替代 嵌套查询 尽量不使用 hints 查询拒绝 select * ,避免对索引字段使用

64920

MySQL字段类型_mysql数据库字段类型

MySQL 支持大量的字段类型,其中常用的也有很多。...定点型字段类型有 DECIMAL 一个,主要用于存储有精度要求的小数。 DECIMAL 从 MySQL 5.1 引入,列的声明语法是 DECIMAL(M,D) 。...char 类型是定长的,MySQL 总是根据定义的字符串长度分配足够的空间。当保存 char 值时,在它们的右边填充空格以达到指定的长度,当检索到 char 值时,尾部的空格被删除掉。...3.日期时间类型 MySQL支持的日期和时间类型有 YEAR 、TIME 、DATE 、DATETIME 、TIMESTAMP,几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可...总结: 本篇文章主要介绍了 MySQL 中常用的字段类型,平时用到的字段类型基本都在这里了,以一张思维导图总结如下: 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

19.4K10

MySQL开发规范

一、基础规范 1)    使用InnoDB存储引擎 2)    数据库字符集使用UTF8,校对字符集使用utf8_general_ci 3)    所有表、字段都尽量添加注释 4)    库名、表名、字段名使用小写字母...,禁止超过32个字符,须见名知意 5)    非唯一索引以 “idx_字段1_字段2” 命名,唯一索引必须以 “uniq_字段1_字段2” 命名 二、查询规范 1)    SQL语句尽可能简单,大的SQL...12)    事务要尽量简单,整个事务的时间长度不要太长 三、表设计规范 1)    用DECIMAL代替FLOAT和DOUBLE存储精确浮点数(精确数据) 2)    使用TINYINT代替ENUM...,尽量使用非空的唯一自增键做主键 四、索引设计规范 1)    单表索引数量不超过10个 2)    单个字段不要超过两个索引 3)    新建的唯一索引必须不能和主键重复 4)    避免冗余和重复索引...尽量不要在频繁更新的列上建立索引 6)    不在低基数列上建立索引,例如状态、类型等 7)    不在索引列进行数学运算和函数运算(参与了运算的列不会引用索引) 8)    复合索引须符合最左前缀的特点建立索引(mysql

1.4K00

MySQL开发规范

一、命名规范 库名、表名、字段名必须使用小写字母并采用下划线分割; 库名、表名、字段名禁 止超过32个字符,须见名知意; 库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过...32; 库名、表名、字段名禁止使用MySQL保留关键字; 临时库、临时表名必须以tmp为前缀并以日期为后缀; 备份库、备份表名必须以bak为前缀并以日期为后缀; 二、基本规范 使用...禁止使用分区表 MySQL的分区表实际性能不是很好,且管理维护成本较高 拆分大字段和访问频率低的字段,分离冷热数据 用HASH进行散表,表名后缀使用十进制数,下标从0开始 首次分表尽量多的分...、索引设计规范 索引是一把双刃剑,它可以提高查询效率但也会降低插入和更新的速度并占用磁盘空间 单张表中索引数量不超过5个 单个索引中的字段数不超过5个 对字符串使用前缀索引,前缀索引长度不超过...不使用%前导的查询,如like“%xxx”,无法使用索引 不使用反向查询,如not in / not like 无法使用索引,导致全表扫描,全表扫描导致bufferpool利用降低 五、字段设计规范

82710

Mysql命名规范

库名与应用名称尽量一致。...表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只 出现数字。 说明:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。...表的命名最好是加上“业务名称_表的作用”。...2)不是 `varchar` 超长字段,更不能是 `text` 字段。 正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存储类目名称,避免关联查询。...2)互联网高并发业务,太多索引会影响写性能 3)生成执行计划时,如果索引太多,会降低性能,并可能导致MySQL选择不到最优索引 4)异常复杂的查询需求,可以选择ES等更为适合的方式存储 复制代码 组合索引字段数不建议超过

7.9K21

MySQL 开发规范

所有的数据库对象名称必须使用小写字母并用下划线分割(MySQL大小写敏感,名称要见名知意,最好不超过32字符)禁止在数据中存储图片,文件二进制数据(使用文件服务器)禁止在线上做数据库压力测试禁止从开发环境...进行比较和计算要对NULL值做特别的处理)使用timestamp或datetime类型来存储时间同财务相关的金额数据,采用decimal类型(不丢失精度,禁止使用 float 和 double)所有的数据库对象名称禁止使用...MySQL保留关键字临时库表必须以tmp为前缀并以日期为后缀(tmp_)备份库和库必须以bak为前缀并以日期为后缀(bak_)所有存储相同数据的列名和列类型必须一致。...,减小表的宽度(mysql限制最多存储4096列,行数没有限制,但是每一行的字节总数不能超过65535。...在varchar字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本区分度决定索引长度即可。

49520

mysql开发规范

命名规范 库名、表名、字段名必须使用小写字母,并采用下划线分割 库名、表名、字段名禁用超过32个字符。...须见名知意 库名、表名、字段名禁用使 MySQL保留字 临时库、表名必须以tmp为前缀,并以日期为后缀 备份库、表必须以bak为前缀,并以日期为后缀 基础规范 使用INNODB存储引擎 表字符集使用utf8mb4...所有表都需要添加注释 单表数据量建议控制在5000W以内 不在数据库中存储图片、文件等大数据 禁止在线上做数据库压力测试 禁止从测试、开发环境直连数据库 库表设计 禁止使用分区表 拆分大字段和访问频率低的字段...UNSIGNED存储非负整数 INT类型固定占用4字节存储 使用timestamp存储时间 使用INT UNSIGNED存储IPV4 使用VARBINARY存储大写敏感的变 字符串 禁用在数据库中存储明文密码 索引规范...多表JOIN的字段 区分度最大的字段放在前 核心SQL优先考虑覆盖索引 避免冗余和重复索引 索引不是越多越好 综合评估数据密度和分布 考虑查询和更新比例

1.7K170
领券