位置: 编程技术 - 正文

mysql中索引与FROM_UNIXTIME的问题(mysql中索引有什么用)

编辑:rootadmin

推荐整理分享mysql中索引与FROM_UNIXTIME的问题(mysql中索引有什么用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:索引 mysql,mysql 索引 or,mysql的索引有,MySQL中索引与约束,mysql索引什么意思,mysql 索引语句,mysql 索引语句,mysql的索引有,内容如对您有帮助,希望把文章链接给更多的朋友!

零、背景

这周四收到很多告警,找DBA看了看,发现有个慢查询。

简单收集一些信息后,发现这个慢查询问题隐藏的很深,问了好多人包括DBA都不知道原因。

一、问题

有一个DB, 有一个字段, 定义如下.

索引如下:

然后我写了一个SQL如下:

终于有一天DBA过来了, 扔给我一个流水,说这个SQL是慢SQL。

我顿时无语了,我的DB都是加了索引,SQL都是精心优化了的,怎么是慢SQL呢?

问为什么是慢SQL,DBA答不上来, 问了周围的同事也都答不上来。

我心里暗想遇到一个隐藏很深的知识点了。

令人怀疑的地方有两个:1.有6个索引。 2. 右值是 FROM_UNIXTIME 函数。

mysql中索引与FROM_UNIXTIME的问题(mysql中索引有什么用)

于是查询MYSQL官方文档,发现6个不是问题。

All storage engines support at least indexes per table and a total index length of at least bytes. Most storage engines have higher limits.

于是怀疑问题是 FROM_UNIXTIME 函数了。

然后看看MYSQL的INDEX小节,找到一点蛛丝马迹。

1.To find the rows matching a WHERE clause quickly.2. To eliminate rows from consideration. If there is a choice between multiple indexes, MySQL normally uses the index that finds the smallest number of rows. 3.If the table has a multiple-column index, any leftmost prefix of the index can be used by the optimizer to look up rows.4. MySQL can use indexes on columns more efficiently if they are declared as the same type and size. Comparison of dissimilar columns (comparing a string column to a temporal or numeric column, for example) may prevent use of indexes if values cannot be compared directly without conversion.

看到第4条的时候,提到不同类型可能导致不走索引,难道 FROM_UNIXTIME 的返回值不能转化为字符串类型?

于是查询 FROM_UNIXTIME 函数的返回值。

MySQL FROM_UNIXTIME() returns a date /datetime from a version of unix_timestamp.

返回的是一个时间类型,那强制转化为字符串类型呢?

这次可以看到, 使用了索引,只扫描了一个数据。

二、结论

这次对 FROM_UNIXTIME 的返回值强制转化一下就可以利用上索引了。

所以这个SQL不能利用上索引是右值与左值的类型不一致导致的。 。

好了,不多说了, 这篇文章算是一个插曲,后面继续介绍算法吧。

mysql中mydumper 和 mysqldump 对比使用 如果只是备份几张表或单个库,相比innobackup而言,mysqldump和mydumper更为方便,不过mydumper增加了相对较多的特性,比如多线程备份,正则匹配备份,分组和自检等

mysql mycat 中间件安装与使用 一,什么是mycat一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库

ubuntu下在docker中安装mysql5.6 的方法 1.安装mysql5.6dockerrunmysql:5.6等所有项目都是Downloadcomplet安装完毕5.6:Pullingfromlibrary/mysqlacf:Pullcompletec2dcc7bb2a:Pullcompletee7a:Pullcomplete9aaf:Pu

标签: mysql中索引有什么用

本文链接地址:https://www.jiuchutong.com/biancheng/349379.html 转载请保留说明!

上一篇:Linux下安装配置MySQL(linux的安装)

下一篇:mysql中mydumper 和 mysqldump 对比使用(mysqldump mysqlpump)

  • 非居民个人利息所得个税税率
  • 注销银行帐户需要什么
  • 缴纳印花税的会计凭证
  • 子公司注销母公司投资损失企业所得税
  • 简易征收适用哪条法律
  • 技术咨询服务开什么发票
  • 个体户逾期申报罚款多少
  • 资产负债表中存货项目金额怎么算
  • 补记上年度计提所得税费用的会计分录
  • 进项转出再差额征收待抵扣
  • 实报实销电话费
  • 不征税收入和免税收入有什么区别
  • 物业要交多少钱
  • 帮别的公司做账的叫什么公司
  • 固定资产进项可以抵扣的时间
  • 普通发票开票步骤
  • 水电费的税收分类有哪些
  • 职工教育经费的扣除标准是什么
  • 增值税普票需要进项吗
  • 增值税专普票清卡失败的原因是什么?
  • 期货盈利需要交什么税
  • 坏账损失的账务处理办法
  • 折价处置抵押房地产的应当参照什么
  • 入住酒店报销
  • 企业销售费用支出怎么算
  • 经济成本和会计成本的大小
  • 债务优化是做什么的工作
  • 只交社保不发工资可以吗
  • 最新的会计规定出台时间
  • 补提去年所得税分录
  • 克罗地亚佩列沙茨
  • 增值税专用发票有几联?
  • 当月认证抵扣的进项税发票一定要入帐做成本吗?
  • qttask.exe是什么进程?qttask.exe是不是病毒?
  • ubuntu设置nginx开机启动
  • 其他业务收入对应的成本
  • 企业内部转账通知单
  • php网站安全防护
  • 销售退换货的账务处理
  • 划水划水划水表情包
  • 图文详解管道支架制作安装标准
  • 代收的运输费用怎么入账
  • 应交税费明细账登记图
  • 以前年度损益调整账务处理分录
  • 哪些情况不能开专用发票
  • sql查看所有数据表
  • 营业外收入的账户有哪些
  • 加计扣除的增值税怎么做账
  • 保险合同包含什么
  • 建筑公司跨区域经营预缴
  • 个人生产经营所得
  • 企业技术服务费比例
  • 工程安装人工费怎么开票
  • 发放股票股利的意义包括
  • 小规模增值税减按1%缴纳,如何申报
  • 银行利息回单怎么报账审核
  • 公司国庆节给员工慰问品
  • 购进货物用于集体福利会计分录
  • 教育费返还款计入收入吗
  • sqlserver分页查询sql
  • fedora修改ip地址
  • win10右键自动弹出
  • 安装windows7之前,应该做好准备工作
  • unix命令大全
  • windows设置
  • mac idle
  • windows10mobile壁纸
  • windows自带视频
  • linux中查看命令怎么使用
  • log4j 日志文件太大
  • java颜色代码对照表图片
  • 置顶txt
  • 封装是借助什么达到的
  • 可扩展的敏捷方法有哪两种观点,并作以简单阐述?
  • bootstrap-treeview自定义双击事件实现方法
  • 税控发票开票软件密码怎么修改?
  • 湖北省税务系统欠税管理工作指南
  • 大连个体营业执照怎么办
  • 税务总局2013年65号公告
  • 我们是在郑州科技市场的一家公司,想找一个代
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设