mysql 日期与索引问题
日期类型可以直接和string格式的字符串比较
select * from xxx where event_time>'2018-06-02' 可以使用索引, mysql默认会把后面的字符串转成date类型。可以使用between and
select * from xxx where date(event_time)>'2018-06-02' 不能使用索引
如果时间戳日期和时间都要比较, 最好使用两个字段保存这个时间戳, 这样可以利用索引
select * from xxx where event_time>1239237428734; -- 使用错误, 不能这么用。可以使用from_unixtime()将数字转成日期类型
将date和time合并成一个datetime
select str_to_date(concat(ICDate,' ',ICTime),'%m/%d/%y %h:%i:%s %s') from XXXX
其他索引总结:
where条件等号两边字段类型不同,不走索引
like 'XXX%' 走索引, '%XXX%'不走索引
对字段进行函数运算不走索引
组合索引 只使用后面的字段不走索引,使用前后的字段走索引. 第一个字段有参于(而且字段类型匹配 没有函数运算),那么会走索引, 第一个字段可以在sql中的任意位置
组合索引遇到第一个不等值条件 即中断后面字段使用索引
字段类型不匹配,不走索引
示例:

name varchar, addr varchar, age int。 创建组合索引为name + addr + age
select * from t_user where name like '123%' and age>19; 走索引 type=range
select * from t_user where age>19 and name like '123%' ; 走索引 type=range
select * from t_user where name =123 不走索引 type=all
select * from t_user where name='123' 走索引 type=ref
select * from t_user where addr like '上城%' and age>30; 不走索引 type=all
explain 是否使用了索引

type=ALL是全表扫描
只要不是ALL, 都能使用索引,只是使用索引的方式不同,性能也有差异==>依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL
关于explain各个字段的解释:https://www.cnblogs.com/david97/p/8072164.html
索引不是越多越好, 两个index进行merge有时还不如只使用一个index
组合索引创建的依据:select distinct(xxx)/count(*) 值越大说明区分度越高 组合索引的价值越高
什么时候创建组合索引? 单列上查询出来的数据量都很大,但是两个组合查询的结果很小 ,此时创建组合索引就比较有意义
(原始的离线度都小,组合的离散度会大???) 0.8*0.8=0.64 0.8*0.5=0.4 如果整体的数据量级别很大,也有点效果
索引的类型

BTREE的时间复杂度: https://blog.csdn.net/weixin_38399962/article/details/79409118
orderby 是否使用索引
https://my.oschina.net/u/912810/blog/325177
orderby用到的索引和where中的索引如果一致, 可以提升不少性能
字符类型的索引需要指定长度
ALTER TABLE t_yyy ADD INDEX `xxx` (`request_type` ASC, `request_param`(15) ASC);
mysql 日期与索引问题的更多相关文章
- Mysql数据库的索引原理
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将 ...
- mysql日期时间函数2
win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而工作中有的时候每周是从周六开始算的,有些数据需要按周统计,那么那种方式比较好呢? 通过下面的研究 ...
- MySQL 日期时间函数
目录 datetime和timestamp区别: timestamp类型字段特殊性: Mysql获取日期时间函数: now() curdate() curtime() Extract() last_d ...
- 一、MySQL中的索引 二、MySQL中的函数 三、MySQL数据库的备份和恢复 四、数据库设计和优化(重点)
一.MySQL中的索引###<1>索引的概念 索引就是一种数据结构(高效获取数据),在mysql中以文件的方式存在.存储建立了索引列的地址或者指向. 文件 :(以某种数据 结构存放) 存放 ...
- MySQL日期比较
假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: select * from product where add_time = '2013-0 ...
- MySQL 多列索引优化小记
MySQL 5.6.30 问题背景 由于爬虫抓取的数据不断增多,这两天在不断对数据库以及查询语句进行优化,其中一个表结构如下: CREATE TABLE `newspaper_article` ( ` ...
- MySQL基础、索引、查询优化等考察点
MySQL基础 MySQL数据类型 整数类型 TINYINT. SMALLINT. MEDIUMINT. INT. BIGINT 属性:UNSIGNED 长度:可以为整数类型指定宽度,例如:INT(1 ...
- Mysql 日期格式化 复杂日期区间查询
前言 最近在做项目涉及到Mysql的复杂日期查询,日期查询其实在数据库中查询其实还是用的挺多的,比如查询开始日期到结束日期的区间信息,查询日期小于有效日期的信息,查询当天的日期,明天的日期,做比较等. ...
- MySQL引擎、索引和优化(li)
一.存储引擎 存储引擎,MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术 ...
随机推荐
- jcrop的bug
1 360(7.1.1.620,内核:31.0.1650.63)的极速模式下,出现裁剪框后,鼠标点击,页面就会滑动到底部. 查看了下源码,发现是下面的代码: function watchKeys() ...
- POJ2420:A Star not A Tree?
我对模拟退火的理解:https://www.cnblogs.com/AKMer/p/9580982.html 我对爬山的理解:https://www.cnblogs.com/AKMer/p/95552 ...
- Log4Net日志记录介绍
原文地址 : http://www.cnblogs.com/wolf-sun/p/3347373.html#3009010 简介 log4net库是Apache log4j框架在Microsoft . ...
- 【转】Unity3D如何制作落叶效果
原文地址:http://hi.baidu.com/cupgenie/item/c23861df692f59e3b3f777a8 创建一个粒子系统 GameObject>Create other& ...
- 问题7:如何实现用户的历史记录功能(最多n条)
实例:制作猜字游戏,添加历史记录功能,显示用户最近猜过的数字 解决方案:使用容量为n的队列存储历史记录 使用标准库colections中的deque,一个双端循环队列 程序退出前,可以使用pickle ...
- 安装pyenv版本管理
系统:Centos7.4 安装pyenv是为了更好的管理python的版本. 在进行安装操作之前,首先使用普通用户test,进行操作,如下: #安装之前先安装依赖的库 [test@localhost ...
- 关于KMeans 最外围点移除实验(其中心保持不变)
import matplotlib.pyplot as plt from sklearn.datasets import make_blobs import numpy as np X,labels ...
- windows下primer3-py安装
primer3是由怀特黑德生物医学研究所Steve Rozen等人发起的一个自动寡核苷酸分析和设计的开源项目,被广泛应用在分子生物领域.primer3-py是用python语言封装的primer3的A ...
- eos命令
ps -ef|grep javakill -9 端口号cd /opt/sudytrue>nohup.outnohup eos7.5/startServer.sh &
- 3.Windows应急响应:蠕虫病毒
0x00 前言 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播, 每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序.常见的蠕虫 ...