MySQL笔记-CURRENT_TIMESTAMP()和ON UPDATE及索引相关
目录
基本概率
代码与实例
基本概率
CURRENT_TIMESTAMP()可以把MYSQL中TIMESTAMP类型设置为当前的时间。
ON UPDATE个人觉得这个是个神器,一般用于当某个字段是updateTIme,最后修改时间的时候,使用这个ON UPDATE即可。这样就不用开发者自己去处理了,MySQL能自动将其处理。
最后来说下索引,这个是来源于百度,具体是谁的,我也忘记了:索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。要注意的是,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立另外的索引。
代码与实例
如下建表代码:
CREATE TABLE timeDemo(id VARCHAR(64) NOT NULL,timeTest TIMESTAMP NOT NULL,PRIMARY KEY (id)
);
当添加一个新数据的时候:
他会自动创建时间,比如某个订单表,他要记录下订单的时间,就可以使用这种方法进行处理。
包括updateTime,最后更新时间:
CREATE TABLE timeDemo2(id VARCHAR(64) NOT NULL,createTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),updateTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),PRIMARY KEY (id));
//上面这个mysql5.7以上版本不会有问题,但5.7以下版本就会有问题
//5.7以下的版本推荐使用程序去插入。
这里用5.5演示下ON UPDATE的效果
CREATE TABLE timeDemo3(id VARCHAR(64) NOT NULL,updateTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),PRIMARY KEY (id)
);
当修改了这个表的某些数据后,updateTime这个数值会自动更新。
每次对这条记录进行更新,updateTime就会自动更新,这样的话,就不用程序员自己去处理了。
这里可以发现,难过很多互联网公司都喜欢用MySQL5.7以上的版本,而传统行业还是在用MySQL5.5版本。
说下索引key和index
CREATE TABLE timeDemo4(id VARCHAR(64) NOT NULL,id2 VARCHAR(64) NOT NULL,updateTime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP() ON UPDATE CURRENT_TIMESTAMP(),PRIMARY KEY (id),KEY(id2)
)ENGINE=INNODB DEFAULT CHARSET=utf8
普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHERE column = ...)或排序条件(ORDER BY column)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。
MySQL笔记-CURRENT_TIMESTAMP()和ON UPDATE及索引相关相关推荐
- MySQL 笔记8 -- 存储过程和索引
MySQL 笔记8 – 存储过程和索引 MySQL 系列笔记是笔者学习.实践MySQL数据库的笔记 课程链接: MySQL 数据库基础入门教程 参考文档: MySQL 官方文档 SQL 教程 一.存储 ...
- 【数据库笔记】高性能MySQL:chapter 5 创建高性能的索引
文章目录 前置知识 5.0 引言 5.1 索引基础 1. 索引的类型 B-Tree 索引 哈希索引 空间数据索引(R-Tree) 全文索引 5.2 索引基础 5.3 高性能的索引策略 1. 独立的列 ...
- MySQL 5.6.5之前版本不支持多条DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT TIMESTAMP
创建数据表时失败,提示以下信息: 09-13-2016 07:47:49 ERROR o.h.t.h.SchemaUpdate [https-jsse-nio-443-exec-6] HHH00038 ...
- MySQL 设置和取消“ON UPDATE CURRENT_TIMESTAMP”
文章目录 1. 设置"ON UPDATE CURRENT_TIMESTAMP" 2. 取消"ON UPDATE CURRENT_TIMESTAMP" 1. 设置 ...
- 徐无忌MySQL笔记:索引的使用规则
徐无忌MySQL笔记:索引的使用规则 完成:第一遍 1.索引的使用大致分为哪两类? 单列索引 联合索引 2.单列索引? 比如:SELECT uid FROM people WHERE name='Ad ...
- MySQL笔记5:如何创建和删除索引?
MySQL数据库中如何创建和删除索引? 一.创建索引 索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引. 1.使用CREA ...
- mysql第五章项目二_高性能MySQL笔记 第5章 创建高性能的索引
索引(index),在MySQL中也被叫做键(key),是存储引擎用于快速找到记录的一种数据结构.索引优化是对查询性能优化最有效的手段. 5.1 索引基础 索引的类型 索引是在存储引擎层而不是服务器层 ...
- mysql事务手写笔记_兴奋了!阿里技术官手写“MySQL笔记”,传授你年薪百万级干货...
前言 MySQL重要吗?重要!为什么重要?因为它在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展.阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的.My ...
- MySql 笔记(五)InnoDB引擎页分裂与页合并的原理
MySql 笔记(五)InnoDB引擎页分裂与页合并的原理 一.文件表(File-Table)结构 二.根,分支与叶子 三.页的内部原理 四.页合并的原理 五.页分裂的原理 六.主键的使用 七.总结 ...
最新文章
- Windows Server 2012 RDS系列:虚拟桌面化(5)
- QT在VS2013中的配置
- vue移动端优秀框架收集
- linux-epoll研究
- 《研磨设计模式》chap20 享元模式 Flyweight (2)模式介绍
- 【优达学城测评】求T-test值,P-value值
- 5.7 echo:显示一行文本
- Android之failed for task ‘:app:dexDebug‘致gradle编译OOM问题解决(android-support-multidex)
- pandas - AttributeError: Series object has no attribute reshape
- 2018辛苦一年了,程序员这样跟大boss谈2019加薪,谈薪杯具变喜剧
- MySQL缓存推荐使用吗_Mysql 查询缓存利弊
- android 银行接口,iOS/Android银行卡识别sdk/开发包/api/接口
- Ubuntu18.04 下载与安装(阿里云官方镜像站)
- html-菜鸟--书架仿饿了么首页—Html学习(1)
- win10 屏幕保护时间到了不触发_你真的了解Win10么?网友教你玩转Win10!
- 独孤木专栏Delayed Project(中) (转)
- [解决]IDEA每次启动都会打开Licenses激活弹窗、IDEA打不开
- 人工智能架构图和产业链构成
- 字节跳动40W大数据开发岗,面试也不过如此
- JAVA笔记- JAVA集合类之HashMap集合