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

我们为什么在MySQL中几乎不使用分区表

在Oracle中,使用分区表是一种很自然的事情,数据库容量基本都是500G起,大小在5T以上都是很常见的。...但是在MySQL的使用中,我们几乎不使用分区表,今天有同学在群里一起沟通,我就按照我的理解做了梳理。...我觉得主要是使用模式的差异,我们不使用的主要原因是避免单库存储过大,而且分区表变更相对会比较麻烦,在MySQL侧,我们的目标是让数据库更小巧轻量一些,可能更偏TP一些,我们目前是排除了分区表的设计,而且也明确写进了开发规范...,如果按照数据类型来说,状态表,流水表和配置表,这三种类型中也就只有流水日志表的数据都是建议使用周期表的形式进行存储,方便随时扩展,表结构变更也方便T+1的变更模式 在这个基础上,可以把这个问题转化为,...问题2:日表和月表什么关系呢?月表是日表的联合查询还是数据镜像?

1.7K50

mysql的空值与NULL的区别

但是如果将一个空值的数据插入到TimesTamp类型的字段中,空值就不一定为空。此时为出现什么情况呢   我先创建了一个表。...在这个表中有两个字段:User_id(其数据类型是int)、Date(其数据类型是TimesTamp)。现在往这个表中插入一条记录,其中往Date字段中插入的是一个NULL空值。...如果往这属性的列中插入Null值的话,则系统会插入一个正整数序列。而如果在其他数据类型中,如字符型数据的列中插入Null的数据,则其插入的就是一个空值。   ...笔者更加喜欢使用空值,而不是空字符。这主要是因为针对空值这个数据类型有几个比较特殊的运算字符。如果某个字段是空字符,数据库中是利用字段名称来代替。相反,如果插入的是空值,则直接显示的是NULL。...如现在需要统计用户信息表中有电话号码的用户数量,此时就可以使用count函数、同时将电话号码作为参数来使用。因为在统计过程中,这个函数会自动忽略空值的数据。此时统计出来的就是有电话号码的用户信息。

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

    MySQL 系列教程之(四)MySQL 中的数据类型

    一、MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则 数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据 在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...不管使用何种形式的串数据类型,串值都必须括在引号内 有两种基本的串类型,分别为定长串和变长串 定长串:CHAR 接受长度固定的字符串,其长度是在创建表时指定的。...---------------------------------------------------- 注意 既然变长数据类型这样灵活,为什么还要使用定长数据类型?...支持的取值范围越大,所需存储空 间越多 与字符串不一样,数值不应该括在引号内 [在这里插入图片描述] decimal(5, 2) 表示数值总共5位, 小数占2位 tinyint 1字节(8位) MySQL

    1.6K83

    5.一文搞懂MySQL的数据类型

    一.MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...注意 既然变长数据类型这样灵活,为什么还要使用定长数据类型? 回答:因为性能,MySQL处理定长列远比处理变长列快得多。 Text 变长文本类型存储 2、数值类型 数值数据类型存储数值。...MySQL中没有专门存储货币的数据类型,一般情况下使用DECIMAL(8, 2) 有符号或无符号 所有数值数据类型(除BIT和BOOLEAN外)都可以有符号或无符号 有符号数值列可以存储正或负的数值 无符号数值列只能存储正数...默认情况为有符号,但如果你知道自己不需要存储负值,可以使用UNSIGNED关键字 注意 如果将邮政编码类似于01234存储为数值类型,则保存的将是数值1234,此时需要使用字符串类型 手机号应该用什么进行存储呢

    1K20

    学习猿地 python教程 django教程1 初识Django

    ### 一,MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则 数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据 在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...它们存储串,如名字、地址、电 话号码、邮政编码等。 不管使用何种形式的串数据类型,串值都必须括在引号内 有两种基本的串类型,分别为定长串和变长串 - 定长串:char 1....MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越大,所需存储空间越多 与字符串不一样,数值不应该括在引号内 ![image](....    手机号应该用什么进行存储呢?

    81820

    Python数据库操作 中的数据类型#学习猿地

    ### 一,MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则 数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据 在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...它们存储串,如名字、地址、电 话号码、邮政编码等。 不管使用何种形式的串数据类型,串值都必须括在引号内 有两种基本的串类型,分别为定长串和变长串 - 定长串:char 1....MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越大,所需存储空间越多 与字符串不一样,数值不应该括在引号内 ![image](....    手机号应该用什么进行存储呢?

    86320

    Python数据库操作 中的数据类型#学习猿地

    ### 一,MySQL的数据类型 数据类型是定义列中可以存储什么类型的数据以及该数据实际怎样存储的基本规则 数据类型限制存储在数据列列中的数据。...例如,数值数据类型列只能接受数值类型的的数据 在设计表时,应该特别重视所用的数据类型。使用错误的数据类型可能会严重地影响应用程序的功能和性能。...它们存储串,如名字、地址、电 话号码、邮政编码等。 不管使用何种形式的串数据类型,串值都必须括在引号内 有两种基本的串类型,分别为定长串和变长串 - 定长串:char 1....MySQL支持多种数值数据类型,每种存储的数值具有不同的取值范围。支持的取值范围越大,所需存储空间越多 与字符串不一样,数值不应该括在引号内 ![image](....手机号应该用什么进行存储呢?

    79620

    【重学MySQL】四、关系型数据库设计规则

    表设计规则 表名规范:表名应具有描述性,能够反映表中存储的数据内容。同时,表名应遵循一定的命名规范,如使用小写字母、下划线分隔单词等,以确保在不同数据库系统中的一致性和可读性。...外键约束:在需要表示表之间关联关系时,可以使用外键。外键是另一个表的主键的副本,用于在两个表之间建立联系。外键的使用有助于维护数据的完整性和一致性。...记录设计规则 记录的唯一性:表中的每一条记录都应是唯一的,这通常通过主键来保证。在插入新记录时,应确保不会与现有记录重复。...在这种关系中,每个表的主键和外键都可以互相对应。 示例: “人”表与“身份证”表:每个人只有一个唯一的身份证号码,每个身份证号码也只对应一个人。...“教师”表与“联系信息”表:一个教师可能有多个联系信息(如电话号码和电子邮件地址),但每个联系信息只能属于一个教师。

    8510

    MySQL必知必会知识点总结一二

    四、MySQL使用帮助命令 在 MySQL 使用过程中,快速查找某一个命令的使用方法和实例。使用命令: mysql> ? contents; ? 示例: 1、mysql> ?...(3)使用TIMESTAMP 要认识到,他会停止在2038年的一个时刻,但MySQL官方应该后期会提供相应的支持。...1~2字节来存储值得长度,如果列的最大长度小于或等于255,则使用1字节,否则就是使用2字节; (3)char和varchar跟字符编码也有密切联系,lantin1占用1个字节,gbk占用2个字节,utf8...2、如何选择char和varchar 六、MySQL数据类型的选择和优化案例 1、手机号存储 使用BIGINT代替CHAR或者VARCHAR存放手机号码。...3、建议使用TINYINT来代替ENUM类型。 4、使用VARBINARY存储大小写敏感的变长字符串或二进制内容。 七、MySQL中的常用运算符 1、算术运算符 ? 2、比较运算符 ?

    82960

    MySQL和Oracle区别

    二者在使用时的区别: 主键:   MySql一般使用自动增长类型,在创建表的时候只要指定表的主键为auto increment,插入记录时就不需要再为主键添加记录了,主键会自动增长。...所以在插入记录前一定要进行非空和长度的判断,不能为空的或者长度超出的都应该提出警告,返回上次操作。MySql就没有这样的数据类型。...)时,创建时会自动变成varchar2(20),varchar和varchar2没太大区别,建议使用varchar2  2.更新表时,在修改和删除多个字段时,两者还是有较大区别的  联系:  1....在创建和删除表,以及更新表增加字段时,两者没有什么区别 数据类型 编号 ORACLE MYSQL 注释 1 NUMBER int / DECIMAL DECIMAL就是NUMBER(10,2)这样的结构...>中2.4 数组处理 9 自动增长的序列 自动增长的数据类型 MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。

    2.7K30

    基本 SQL 之数据库及表管理

    上篇文章,我们基于『数据库』做了一个宏观上的介绍,你应当了解到数据库是在何种背景下,为了解决什么样的问题而诞生的,以及在具体实现下又可以划分哪些中类型。...USE[DATABASENAEM]; 数据库的管理其实没什么太复杂的,它就像一个容器一样,创建后就意味着占有了一块磁盘空间,具体的数据存储还是在表结构中,所以接下来我们来看看数据库表管理情况。...但是实际上,SQLServer,Oracle,MySQL 等数据库的具体实现上也大多都支持这些类型,只不过在不同的数据库中,同一种数据类型可能有不同的名称。...举个例子吧,数据类型 Integer,在 Oracle 里使用 Number 描述,SQLServer 里使用 int 来描述,而 MySQL 里既可以使用 int 也可以使用 Integer 进行描述...,也即当你尝试向 person 表插入一条数据时,如果检测到你将要插入的这条数据的 uName 字段的值在表中已知记录中存在,你将不能成功插入。

    1.8K30

    MySQL数据库基础练习系列38、物流跟踪系统

    DML(注意插入数据顺序) 插入数据的时候也要注意主外键关系,如果没有外检的情况下是没有办法插入从表数据的。...解释: 在第一范式中,主要关注的是列的原子性。也就是说,表中的每一列都应该只包含一个值,而不能包含集合、数组或其他复合数据类型。...解释: 第二范式建立在第一范式的基础上,主要关注于主键与非主键列之间的依赖关系。 在第二范式中,一个表只能保存一种数据,不可以把多种数据保存在同一张数据库表中。...如果表中的某一列只与复合主键的一部分有关,那么它就不应该存在于这个表中,而应该被分离出去形成另外一张新表。 第三范式(3NF, Third Normal Form) 定义: 满足2NF。...解释: 第三范式是在第二范式的基础上进一步细化的。它主要关注于消除传递依赖,即非主键列不应该依赖于主键的某一部分,而应该直接依赖于整个主键。

    11910

    【MySQL】MySQL数据库的初阶使用

    下面是MySQL中的整数类型,常用的数据类型是int,在MySQL里面定义列的时候,是列名在前,列属性在后,如果数据类型后面什么都没有带,则默认是有符号的,只有显示带了unsigned,则才是有符号的。...所以在MySQL中,数据类型本身也是一种约束,约束使用者进行合法数据的插入,通过这样的约束就可以保证数据库里面数据的可预期性和完整性。 3....所以在实际分配数据类型时,一定要合理的结合具体使用场景来分配。 4....值得注意的是,如果你使用某一数据类型,频繁的达到临界存储条件的话,则应该更换更大的数据类型进行存储。 4....一张表中,主键只能有一个,唯一键可以有多个,所以例如学生id,电话号码,QQ号码等都可以进行唯一键约束,如果你不想让唯一键中出现NULL值,则可以在唯一键约束的基础上再多添加一个not null非空约束

    34630

    MySQL数据库表约束详解

    站在正常的业务逻辑中: 如果班级没有名字,你不知道你在哪个班级 如果教室名字可以为空,就不知道在哪上课 所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。...' doesn't have a default value 3.默认值 默认值:某一种数据会经常性的出现某个具体的值,可以在一开始就指定好,在需要真实数据的时候,用户可以选择性的使用默认值。...具体来说,它将列a的数据类型更改为int(5),并且设置了两个额外的属性:unsigned和zerofill。 这条语句为什么会出现两个a呢?...通常,CHANGE子句用于在修改列的数据类型或其他属性时同时更改列名。如果您只想更改列的数据类型或属性而不更改列名,就像您的示例中所做的那样,您需要重复列名。...要注意的是,这只是最后显示的结果,在MySQL中实际存储的还是1。 所以zerofill仅影响显示。

    7600

    52 条 SQL 语句性能优化策略,建议收藏!

    2 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...M,N实际上可以减缓查询在某些情况下,有节制地使用,在WHERE子句中使用UNION代替子查询,在重新启动的MySQL,记得来温暖你的数据库,以确保您的数据在内存和查询速度快,考虑持久连接,而不是多个连接...50 优化表的数据类型,选择合适的数据类型: 原则:更小通常更好,简单就好,所有字段都得有默认值,尽量避免null。 例如:数据库表设计时候更小的占磁盘空间尽可能使用更小的整数类型....同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。...因为在MySQL中,ENUM类型被当作数值型数据来处理, 而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。

    93300

    MySQL数据库基础练习系列10、访客登记系统

    DML(注意插入数据顺序) 插入数据的时候也要注意主外键关系,如果没有外检的情况下是没有办法插入从表数据的。...解释: 在第一范式中,主要关注的是列的原子性。也就是说,表中的每一列都应该只包含一个值,而不能包含集合、数组或其他复合数据类型。...解释: 第二范式建立在第一范式的基础上,主要关注于主键与非主键列之间的依赖关系。 在第二范式中,一个表只能保存一种数据,不可以把多种数据保存在同一张数据库表中。...如果表中的某一列只与复合主键的一部分有关,那么它就不应该存在于这个表中,而应该被分离出去形成另外一张新表。 第三范式(3NF, Third Normal Form) 定义: 满足2NF。...解释: 第三范式是在第二范式的基础上进一步细化的。它主要关注于消除传递依赖,即非主键列不应该依赖于主键的某一部分,而应该直接依赖于整个主键。

    10010

    SQL优化

    应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认值。...索引创建规则: 表的主键、外键必须有索引; 数据量超过300的表应该有索引; 经常与其他表进行连接的表,在连接字段上应该建立索引; 经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 索引应该建在选择性高的字段上...优化表的数据类型,选择合适的数据类型: 原则:更小通常更好,简单就好,所有字段都得有默认值,尽量避免null。 例如:数据库表设计时候更小的占磁盘空间尽可能使用更小的整数类型....同样的,如果可以的话, 我们应该使用MEDIUMINT而不是BIGIN来定义整型字段。 应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。...因为在MySQL中,ENUM类型被当作数值型数据来处理, 而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。

    70320

    52 条 SQL 语句性能优化策略

    2、应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值。...41、MySQL备份过程: 从二级复制服务器上进行备份; 在进行备份期间停止复制,以避免在数据依赖和外键约束上出现不一致; 彻底停止MySQL,从数据库文件进行备份; 如果使用MySQL...50、优化表的数据类型,选择合适的数据类型: 原则:更小通常更好,简单就好,所有字段都得有默认值,尽量避免null。 例如:数据库表设计时候更小的占磁盘空间尽可能使用更小的整数类型。...同样的,如果可以的话,我们应该使用MEDIUMINT而不是BIGIN来定义整型字段,应该尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。...因为在MySQL中,ENUM类型被当作数值型数据来处理,而数值型数据被处理起来的速度要比文本类型快得多。这样,我们又可以提高数据库的性能。

    64760
    领券