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

Mysql类型

Mysql类型: 数字类型 字符串类型 布尔型 日期时间类型 数字类型: 1个字节=8比特,但数字里有一个比特用于符号占位 TINYINT 占用1个字节,表示范围:-128~127 SMALLINT...政治面貌:只能取党员、团员、群众 高考成绩:FLOADT(4,1) 取值有规则 电话、手机号码:有格式要求 用户名:必须唯一 登录密码:密码不能为空字符串且长度不能少于N位 员工所在部门:可取值必须在部门表存在过...一个表至多只能有一个主键。 唯一约束: 列名 类型 UNIQUE 声明为“唯一”的列上不能出现重复值,但可以出现多个NULL值。...非空约束: 列名 类型 NOT NULL 声明为“非空”约束的列上不能出现NULL,但可以重复 检查约束对于Mysql不支持 默认值约束 列名 类型 Default 值 声明为“默认值”约束的列上没有值的将会默认采用默认设置的值

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

MySQL规范

数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql的保留关键字(如果表名包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要做到见名识意...过大的长度会消耗更多的内存 2、避免使用TEXT、BLOB数据类型,最常见的TEXT类型可以存储64k的数据 建议把BLOB或是TEXT分离到单独的扩展表 Mysql内存临时表不支持TEXT、BLOB...索引设计规范 限制每张表上的索引数量,建议单张不超过5个 禁止给表的每一都建立单独的索引 每个Innoodb表必须有个主键 常见索引建议 1、出现在SELECT、UPDATE、DELETE...语句的WHERE从句中的 2、包含在ORDER BY、GROUP BY、DISTINCT的字段 并不要将符合1和2的字段的都建立一个索引,通常将1、2的字段建立联合索引效果更好 3、多表join...在Mysql,对于同一个SQL多关联(join)一个表,就会多分配一个关联缓存,如果在一个SQL关联的表越多,所占用的内存也就越大。

1.3K20

MYSQl规范

不在数据库做运算:cpu计算务必移至业务层 控制单表数据量:单表记录控制在1000w 控制数量:字段数控制在20以内 平衡范式与冗余:为提高效率牺牲范式设计,冗余数据 拒绝3B:拒绝大sql,...大事物,大批量 varchar是变长存储的,所以实际开发我们一般都把varchar的宽度设为最长255,反正你没用完它也不会浪费空间。...text高很多 实在避免不了blob,请拆表 谨慎合理使用索引 改善查询、减慢更新 索引一定不是越多越好(能不加就不加,要加的一定得加) 覆盖记录条数过多不适合建索引,例如“性别” 不在索引做运算...采用下划线分隔 abc,Abc,ABC都是给自己埋坑 库名,表名,列名必须见名知义,长度不要超过32字符 tmp,wushan谁TM知道这些库是干嘛的 建议将大字段,访问频度低的字段拆分到单独的表存储...,分离冷热数据 禁止在where条件使用函数或者表达式 禁止大表JOIN和子查询

42710

MySQL的12个SQL编写规范

MySQL显示它正在使用'department'索引来检索employees表的数据,这对查询性能是有利的。...` ( `id` int(11) NOT NULL AUTOINCREMENT COMMENT '主键', `name` varchar(255) DEFAULT NULL COMMENT '账户名称...关键字大写并使用缩进SQL书写规范强调关键字大写和使用缩进,是为了提升代码的可读性和整洁度。...数据库不需要检索和处理不相关的数据,可以更快地返回结果。减少网络传输量:因为从数据库服务器到客户端只需要传输实际需要的数据,这可以显著减少数据传输时间和带宽消耗。...索引的命名规范统一命名规范能让索引更易读、易懂,方便团队协作和维护,减少操作错误,利于自动化脚本处理,以及符合标准化要求,从而提升数据库的管理效率和系统稳定性。

7010

MySQL 开发规范

所有的数据库对象名称必须使用小写字母并用下划线分割(MySQL大小写敏感,名称要见名知意,最好不超过32字符)禁止在数据存储图片,文件二进制数据(使用文件服务器)禁止在线上做数据库压力测试禁止从开发环境...MySQL保留关键字临时库表必须以tmp为前缀并以日期为后缀(tmp_)备份库和库必须以bak为前缀并以日期为后缀(bak_)所有存储相同数据的列名和类型必须一致。...限制最多存储4096,行数没有限制,但是每一行的字节总数不能超过65535。...限制好处:减少磁盘io,保证热数据的内存缓存命中率,避免读入无用的冷数据)禁止在表建立预留字段(无法确认存储的数据类型,对预留字段类型进行修改,会对表进行锁定)避免使用双%号和like,搜索严禁左模糊或者全模糊...后边的集合元素数量,控制在 1000 个之内禁止使用order by rand()进行随机排序避免建立冗余索引和重复索引(冗余:index(a,b,c) index(a,b) index(a))禁止给表的每一都建立单独的索引区分度最高的放在联合索引的最左侧尽量把字段长度小的放在联合索引的最左侧尽量避免使用外键

48220

MySQL开发规范

一、命名规范 库名、表名、字段名必须使用小写字母并采用下划线分割; 库名、表名、字段名禁 止超过32个字符,须见名知意; 库名、表名、字段名支持最多64个字符,统一规范、易于辨识以及减少传输量不要超过...32; 库名、表名、字段名禁止使用MySQL保留关键字; 临时库、临时表名必须以tmp为前缀并以日期为后缀; 备份库、备份表名必须以bak为前缀并以日期为后缀; 二、基本规范 使用...、文件等大数据; 禁止在线上做数据库压力测试; 禁止从测试、开发环境直连数据库; 三、库表设计规范 禁止使用分区表 MySQL的分区表实际性能不是很好,且管理维护成本较高 拆分大字段和访问频率低的字段...;如果有一个 CHAR(200),如果在前10个字符内,多数值是惟一的,那么就不要对整个进行索引。...尽可能不要使用TEXT、BLOB类型 删除这种值会在数据表留下很大的"空洞",可以考虑把BLOB或TEXT分离到单独的表 用DECIMAL代替FLOAT和DOUBLE存储精确浮点数

81110

Mysql命名规范

,例如照片,可以将大文件存储在对象存储系统,数据库存储路径 禁止在线上环境做数据库压力测试 测试,开发,线上数据库环境必须隔离 ​ 命名规范 库名与应用名称尽量一致。...表的命名最好是加上“业务名称_表的作用”。...设计规范 小数类型为 decimal,禁止使用 float 和 double。 说明:float 和 double 在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。...正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表冗余存储类目名称,避免关联查询。...如果更新学生表的 `student_id`,同时触发成绩表的 `student_id` 更新,即为级联更新。

7.7K21

MySQL开发规范

一、基础规范 1)    使用InnoDB存储引擎 2)    数据库字符集使用UTF8,校对字符集使用utf8_general_ci 3)    所有表、字段都尽量添加注释 4)    库名、表名、字段名使用小写字母...,禁止超过32个字符,须见名知意 5)    非唯一索引以 “idx_字段1_字段2” 命名,唯一索引必须以 “uniq_字段1_字段2” 命名 二、查询规范 1)    SQL语句尽可能简单,大的SQL...= 等非等值操作符(会导致用不到索引) 5)    Where条件里不要对使用函数(不会引用索引) 6)    能确定返回结果只有一条时,使用limit 1(LIMIT分页注意效率,LIMIT越大,效率越低...4)    避免冗余和重复索引 5)    尽量不要在频繁更新的列上建立索引 6)    不在低基数列上建立索引,例如状态、类型等 7)    不在索引进行数学运算和函数运算(参与了运算的不会引用索引...) 8)    复合索引须符合最左前缀的特点建立索引(mysql使用复合索引时从左向右匹配) 9)    重要的SQLwhere条件里的字段必须被索引 10)    Where条件里的字段顺序与索引顺序无关

1.4K00

mysql开发规范

命名规范 库名、表名、字段名必须使用小写字母,并采用下划线分割 库名、表名、字段名禁用超过32个字符。...须见名知意 库名、表名、字段名禁用使 MySQL保留字 临时库、表名必须以tmp为前缀,并以日期为后缀 备份库、表必须以bak为前缀,并以日期为后缀 基础规范 使用INNODB存储引擎 表字符集使用utf8mb4...索引规范 索引的用途 去重 加速定位 避免排序 覆盖索引 索引数量控制 单张表索引数量不超过5个 单个索引的字段数不超过5个 对字符串使用前缀索引,前缀索引长度不超过8个字符 建议优先考虑前缀索引...,必要时可添加伪并建立索引 主键准则 表必须有主键 不使用更新频繁的 尽量不选择字符串列 不使用UUID MD5 HASH 默认使用非空的唯一键 建议选择自增或发号器 重要的SQL必须被索引 UPDATE...、DELETE语句的WHERE条件 ORDER BY、GROUP BY、DISTINCT的字段 多表JOIN的字段 区分度最大的字段放在前 核心SQL优先考虑覆盖索引 避免冗余和重复索引 索引不是越多越好

1.7K170

MySQL编程规范

基础规范 使用InnoDB存储引擎 表字符集默认使用UTF8,如果涉及到用户输入应当校验字符范围,emoji需要使用UTF8MB4 所有表都需要添加注释 单表数据量建议控制在5000W以内 不在数据库存储图...库名、表名、字段名禁⽌止使⽤用MySQL保留字 临时库、表名必须以tmp为前缀,并以日期为后缀,日期格式为YYYY[MM][DD][HH][mm][ss] 比如tmp_aaa_2016、tmp_aaa_...每行记录物理长度不超过8KB 索引规范 索引的数量要控制: 单张表索引数量不超过5个 单个索引的字段数不超过5个 对字符串使⽤用前缀索引,前缀索引长度不超过8个字符 建议优先考虑前缀索引,超过20个长度的字符串列...,最好创建前缀索引而非整列索引,必要时可添加伪并建立索引。...idx_userId_userName_userEmail 唯一索引必须按照‘uni_字段名称_字段名称[_字段名]‘进行命名 比如user_id、user_name、user_email建立联合索引

1.5K10

mysql使用规范

目的 规范业务系统对MySQL数据库在设计、开发、运维等阶段所必须遵循的原则,旨在控制对数据库的滥用,收敛不合理的使用形式,保障数据库安全、稳定、高效的运行以及业务运营的稳定性。...适用范围 所有使用MySQL的业务系统。 数据库设计规范 【强制】所有的表必须指定主键(Primary Key),主键是尽可能小的INT类型,并且是AUTO_INCREMENT自增长形式。...【强制】禁止在数据库存放图片、文件内容。 【强制】禁止使用枚举类型,推荐使用tinyint来实现相应场景。...【推荐】数据表的命名结构最好使用: “业务名称_表的作用”。 【推荐】库名与应用名称尽量保持一致。 【推荐】单表行数超过500w行,或单表容量超过2G,才推荐使用分表分库。...数据库应用开发规范 【强制】数据库访问信息统一配置,必须可以满足一键切换访问实例。

85620

Mysql与Oracle修改的默认值

于是想到通过default来修改的默认值: alter table A modify column biz default 'old' comment '业务标识 old-老业务, new-新业务'...找后台运维查生产数据库,发现历史数据的biz字段还是null 原因: 自己在本地mysql数据库试了下,好像的确是default没法修改历史数据为null 的值。这就尴尬了。...看起来mysql和oracle在default的语义上处理不一样,对于oracle,会将历史为null的值刷成default指定的值。...而对于mysql,只会对新数据产生影响,历史数据仍然会保持为null。...总结 1. mysql和oracle在default的语义上存在区别,如果想修改历史数据的值,建议给一个新的update语句(不管是oracle还是mysql,减少ddl执行的时间) 2.

13.1K30

MySQL索引的前缀索引和多索引

正确地创建和使用索引是实现高性能查询的基础,本文笔者介绍MySQL的前缀索引和多索引。...,因为MySQL无法解析id + 1 = 19298这个方程式进行等价转换,另外使用索引时还需注意字段类型的问题,如果字段类型不一致,同样需要进行索引的计算,导致索引失效,例如 explain select...对于BLOB和TEXT类型,MySQL必须使用前缀索引,具体使用多少个字符建立前缀,需要对其索引选择性进行计算。...前缀字符个数 区分度 3 0.0546 4 0.3171 5 0.8190 6 0.9808 7 0.9977 8 0.9982 9 0.9996 10 0.9998 多索引 MySQL支持“索引合并...); Using where 复制代码 如果是在AND操作,说明有必要建立多联合索引,如果是OR操作,会耗费大量CPU和内存资源在缓存、排序与合并上。

4.4K00

mysql explain ref_MySQL EXPLAIN详解

决定采用哪个索引来优化查询 key_len 显示mysql在索引里使用的字节数 ref 显示了之前的表在key列记录的索引查找值所用的或常量 rows 为了找到所需的行而需要读取的行数,估算值,不精确...key key显示MySQL实际决定使用的键(索引)。...要想强制MySQL使用或忽视possible_keys的索引,在查询中使用FORCE INDEX、USE INDEX或者IGNORE INDEX。...ref ref显示使用哪个或常数与key一起从表中选择行。 rows rows显示MySQL认为它执行查询时必须检查的行数。注意这是一个预估值。...Extra Extra是EXPLAIN输出另外一个很重要的,该显示MySQL在查询过程的一些详细信息,MySQL查询优化器执行查询的过程对查询计划的重要补充信息。

3.4K60

MySQL设计表规范

规范总结 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用 MySQL 保留关键字【设计表后逐一排查】 所有表必须使用 Innodb 存储引擎,数据库和表的字符集统一使用...第二范式:需要确保数据库表每一都和主键相关 第三范式:不允许数据冗余 数据库命名规范 1.所有数据库对象名称必须使用小写字母并用下划线分割 表名:users,users_like-videos...MySQL对象名默认规定大小写敏感,且在生产环境MySQL通常运行在Linux系统下,Linux系统本身也是大小写敏感的。...2.所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名包含关键字查询时,需要将其用单引号括起来) 关于MySQL保留关键字 WHERE,INSERT,UPDATE,SET,SELECT https...避免使用 TEXT,BLOB 数据类型,最常见的 TEXT 类型可以存储 64k 的数据 建议把 BLOB 或是 TEXT 分离到单独的扩展表 MySQL 内存临时表不支持 TEXT、BLOB 这样的大数据类型

1.5K10
领券