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

MySQL数据类型的选择

这里有两个例子:一个是应该使用 MySQL 内建的类型(date, time, datatime)而不是字符串来存储日期和时间,另一个是应该用无符号整型存储 IP 地址。 尽量避免NULL。...如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更复杂。特别是计划在列上索引,就应该尽量避免设计成可为 NULL 的列。...枚举(enum)类型 MySQL 在内部会将每个值在列表中的位置保存为整数,并且在的 .frm 文件中保存 “数字-字符串” 映射关系的 “查找”。...日期和时间类型MySQL 能存储的最小时间粒度为秒。 datetime 保存范围从 1001 年到 9999 年,精度为秒。与时区无关。使用 8 字节的存储空间。...timestamp 类型保存了从 1970 年 1 月 1 日 午夜(格林尼治标准时间)以来的秒数,它和 unix 时间戳相同。使用 4 字节的存储空间,范围从 1970 年到 2038 年。

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

    粗聊Mysql——你会么?

    本文中说到的“”,并非单纯的一个库,或是一张,而是你建好的库和在项目的运营中,是否能应付各种事件,下面我说说几个我在项目中遇到的问题以及处理的方法,算是一个小小的心得,给大家分享下。...比如现在有2张,一张新闻栏目,一张新闻,现在两张需要进行关联,我想大多数人的做法肯定是在新闻表里一个新闻栏目id,然后把新闻栏目表里的主键ID(自增)写到这个字段里,通过这样进行两关联。   ...所以我建议两之间关联不用主键,而是单独一个编号的字段,我们这里可以用mysql的uuid()函数做为编号,相关文献可以参考《UUID做主键好还是不好》,只所以一张要2个主键,一个物理主键(自增id...至于性能,我本地测了下基本上没差异,网上也有人做了10W条数据的测试——《实测MYSQL UUID性能》。...存储空间扩大一倍,而存储数据却扩大N倍,再加上主键是一个自增的字段,我们根本无法控制它会自增到多少数值,所以我通常在建的时候,主键类型都是设为bigint的,同样,上面提到的编号字段类型也是bigint

    5.2K10

    MySQL 系列教程之(五)DDL 操作:

    创建RUNOOB数据库,并设定编码集为utf8 删除数据库 删库有风险,动手需谨慎 drop database 库名; MySQL 数据 创建MySQL数据需要以下信息: 名 表字段名 定义每个表字段...create table 名( 字段名 类型 [字段约束], 字段名 类型 [字段约束], 字段名 类型 [字段约束] ... ); 创建 通过 mysql> 命令窗口可以很简单的创建...MySQL数据。...查看表结构 desc stu; 查看表语句 show create table stu\G 修改结构 格式: alter table 名 action(更改选项); 添加字段: 添加字段:alter...AUTO_INCREMENT=1 更改类型: ALTER TABLE 名称 ENGINE="InnoDB" 关于类型 MySQL数据库中的类型一般常用两种:MyISAM和InnoDB 区别:

    7.6K73

    MySQL时间类型差异

    文章目录[隐藏] 时间格式化 DATETIME TIMESTAMP DATE TIME YEAR 日期时间类型 占用空间 日期格式 最小值 最大值 零值表示 DATETIME 8 bytes YYYY-MM-DD...中的第一个 TIMESTAMP 列自动设置为系统时间(CURRENT_TIMESTAMP)。当插入或更新一行,但没有明确给 TIMESTAMP 列赋值,也会自动设置为当前系统时间。...如果中有第二个 TIMESTAMP 列,则默认值设置为0000-00-00 00:00:00。 TIMESTAMP 的属性受 Mysql 版本和服务器 SQLMode 的影响较大。...注:一般时候,创建时间用datetime,更新时间用timestamp。...如果实际应用只保存年份,那么用 1 bytes 保存 YEAR 类型完全可以。不但能够节约存储空间,还能提高的操作效率

    2.6K20

    MySQL【第二章】——&&约束

    一、数据类型   MySQL中定义数据字段的类型对你数据库的优化是非常重要的。 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。...dd/HH/mm/ss     timestamp: 1970-01-01  二、&约束 1.约束   1.1 主键约束(PRIMARY KEY)     主键约束:唯一、不重复、不为空...语法:CREATE TABLE 名称(         列名称1 数据类型 NOT NULL,         列名称2 数据类型,         列名称3 数据类型, unique(列名称...例如:   1) 性别:sex char(1) default '男'     2) 日期:createdate timestamp default current_timestamp 2....  ALTER TABLE 名 DROP INDEX 唯一约束缩影名称;  //时间格式如图所示:

    4.8K20

    mysql常见的选项和约束

    约束主要是防止非法数据进入中,保证数据的正确性和一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL的约束保存在information_schema.table_constraints中...,可以通过该查询约束信息 常见的约束类型 not null非空,指定某列不为空(注意区分空和空格的关系) unique:唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复...,类型一般为整型或者字符串 具有主键约束的列不允许有null值,不允许有重复值 每个最多只允许一个主键,可定义联合主键,主键名总是PRIMARY 联合主键 用几个列来进行唯一标识一行 constraint...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql...来变通地实现check约束,ENUM只能选一个值,SET可以选择多个值 AUTO_INCREMENT 自增 缺点:当删除上一条时会在删除的上一条的基础上加1,不会覆盖原来删除的编号 列的数值自动增长,列的类型只能是整数类型

    13810

    MySQL常用的类型

    它是MySQL的默认数据类型,基于了传统的ISAM类型,ISAM是Indexed Sequential Access Method(有索引的顺序访问方法)的缩写,一般来说,它是存储记录和文件的标准方法...MyISAM(TYPE=MYISAM)是ISAM类型的一种延伸,具有很多优化和增强的特性。 是MySQL的默认类型。...即使是具有相当多的插入、更新和删除操作的,智能防碎片逻辑也能保证其高性能的协作性。 二、InnoDB   InnoDB是MySQL 4.0之后推出的一种比较新的数据类型,这种类型是事务安全的。...InnoDB(TYPE=INNODB),是一个完全兼容ACID(事务的原子性、一致性、独立性及持久性)的、高效率的完全支持MySQL的事务处理并且不会btwagkyaakftntce。...精细的(行级和级)锁提高了MySQL事务处理的带走度,同时其也支持无锁定读操作(以前只在Oracle中包含)和多版本的特性。

    1.3K50

    mysql】日期与时间类型

    日期与时间类型 日期与时间是重要的信息,在我们的系统中,几乎所有的数据都用得到。原因是客户需要知道数据的时间标签,从而进行数据查询、统计和处理。...MySQL有多种表示日期和时间的数据类型,不同的版本可能有所差异,MySQL8.0版本支持的日期和时间类型主要有:YEAR类型、TIME类型、DATE类型、DATETIME类型和TIMESTAMP类型。...(3)使用CURRENT_TIME()或者NOW(),会插入当前系统的时间。 举例: 创建数据中包含一个TIME类型的字段f1。...使用函数CURRENT_TIMESTAMP()和NOW(),可以向DATETIME类型的字段插入系统的当前日期和时间。 举例: 创建数据中包含一个DATETIME类型的字段dt。...如果向TIMESTAMP类型的字段插入的时间超出了TIMESTAMP类型的范围,则MySQL会抛出错误信息。 举例: 创建数据中包含一个TIMESTAMP类型的字段ts。

    4.1K20
    领券