mysql datetime month不走索引_like百分号加前面一定不走索引吗?一不小心就翻车,关于mysql索引那些容易错的点...

8971476e5f292f5170892ec5999498a8.png

like百分号加前面一定不走索引吗?

正常来讲,我们都知道在mysql的like查询中,百分号加在关键词后面是走索引的,比如 select * like "张三%",而百分号在前面是不走索引的,比如 select * like "%张三",但也有例外。如果你的字段有id,a,b,c四列。而你对abc三列加了索引的话。那无论如何,like都会走索引的。因为如果能走覆盖索引的话。mysql会优先走覆盖索引。

同时,如果id,a,b,c四列,仅对a列做了索引,select a from table where a like "%张三%"也同样是会走覆盖索引的

like如果走了索引,或者范围查询后面的字段还走不走索引?

假设abc加了索引,select a from table where a like "张三%" and b = 18,那b走不走索引?不一定,根据索引的底层原理,a字段是确定值,b字段才会走索引。所以范围查询后面不走索引只是一个偷懒的说法。如果范围查询过后的a是个确定值,那后面还是走索引的,否则不走

abc创建了索引,where条件和索引顺序不一致走不走索引?

abc创建了索引,select * from table where a = 1 and c = 3 and b = 2 走不走索引?走的,mysql底层会针对sql语句进行一定的优化。该sql几个and的顺序调整对最终结果的正确性没有影响,但却会走不走索引的查询效率影响较大。sql很乐意做这样的优化

or走不走索引?

我们经常会听到or走索引,或者or不走索引的简单说法,其实这里是分情况的
如果针对某个字段的or是走索引的,比如 select * from table where ( a = '3' or a = '4') ;
如果针对多个字段的or是不走索引的,比如 select * from table where ( a = '3' or b = 4) ;

排序走不走索引?

select * from table where a = '张三' and b = 18 order by c asc,排序字段c走不走索引?走的!
abc正好顺序的出现在组合索引当中,但有个点要注意的是,如何知道排序走没走索引。一般走没走索引通过explain当中的key能看出来。但在刚才的sql中,由于a已经走了索引,c走不走索引无法通过key看出来,而只能通过extra中的信息来看,如果extra出现了filesort说明没有用到索引。

引申一下,和c的场景类似,如果知道b走没有索引。只能通过和单独a条件,比较key_len来确定,如果b走了索引,key_len是会变长的。否则没走

提防隐式转换

有一种比较低级错误,比如我有个字段名a,保存内容为年龄,但是误用了varchar字段,那 select a from table where a = 18,走不走索引?不走的,虽然mysql很智能,这个sql没有报错,但是mysql为此针对列a做了字符串到数字的转换,我们都知道一旦针对某个字段做了函数转换,那就不走索引了。再引申一下,索引失效以后 update table set b = 10086 where a = 18,由于索引失效,针对a的查询需要全表扫描,针对a的修改又需要加写锁。所以本来的行级写锁变为了表级写锁。并发能力大大降低!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ACM竞赛、数论内容常用的定理(求解(a/b)%c,乘法逆元,费马小定理)

如果b与c互素,则(a/b)%ca*b^((c)-1)%c其中是欧拉函数。或者(a/b)%ca*b^(c-2)%c 如果b与c不互素,则(a/b)%c(a%bc)/b 对于b与c互素和不互素都有(a/b)%c(a%bc)/b成立 乘法逆元用扩展欧几里得定理: 例题:ZOJ - 3609 题干&#xf…

自定义菜单url不能带_微服务架构【SpringBoot+SpringCloud+VUE】五 || 实战项目微信公众号自定义开发...

本章主要讲解微信公众号自定义菜单、微信网页开发、模板消息推送等功能的实现;发福利了,下方关注公众号,就能免费获取项目源码1、自定义菜单开发前需要了解以下几点:1、微信公众号的自定义菜单最多包括3个一级菜单,每个…

C语言编程中关于负数的%运算的判定。

如果 % 两边的操作数都为正数,则结果为正数或零;如果 % 两边的操作数都是负数,则结果为负数或零。C99 以前,并没有规定如果操作数中有一方为负数,模除的结果会是什么。C99 规定,如果 % 左边的操作数是正数&…

mnesia mysql性能,Mnesia数据库的存储容量是多少?

Some places state 2GB period. Some places state it depends up the number of nodes.解决方案Quite large if your question is "whats the storage capacity of an mnesia database made up of a huge number of disc_only_copies tables" - youre largely limit…

无数种求逆元的方法总结

乘法逆元 对于缩系中的元素,每个数a均有唯一的与之对应的乘法逆元x,使得ax≡1(mod n) 一个数有逆元的充分必要条件是gcd(a,n)1,此时逆元唯一存在 逆元的含义:模n意义下,1个数a如果有逆元x,那么除以a相当于…

【CF#2A】Winner(模拟 STL-map)☆

题干: The winner of the card game popular in Berland "Berlogging" is determined according to the following rules. If at the end of the game there is only one player with the maximum number of points, he is the winner. The situation be…

python两个元组相加_《第5章 Python 列表与元组》5.1.3 序列相加(Adding)!

《高中信息技术 Python编程》 教学案《第5章 Python 列表与元组》 5.1.3 序列相加(Adding)!06:151 #使用加号可以进行序列的连接操作,输入如下:2 >>>[1,2,3][4,5,6]3 [1,2,3,4,5,6]4 >>>a[1,2]5 >>>b[5,6]6 >&…

STL之 set简略介绍。

set常用函数及其讲解 构造set集合的主要目的是为了快速检索&#xff0c;使用set前&#xff0c;需要在程序头文件中包含声明“#include<set>”。 set集合容器实现了红黑树&#xff08;Red-Black Tree&#xff09;的平衡二叉检索树的的数据结构&#xff0c;在插入元素时&a…

mysql 按时间查询优化_mysql如何按时间查询优化

mysql按时间查询优化的方法&#xff1a;1、【register_time】字段是datetime类型&#xff0c;转换为日期再匹配&#xff0c;需要查询出所有行进行过滤&#xff1b;2、可以利用在【register_time】字段上建立索引&#xff0c;查询极快。本教程操作环境&#xff1a;windows7系统、…

【HDU - 5688 】Problem D(STL+map)

题干&#xff1a; 度熊所居住的 D 国&#xff0c;是一个完全尊重人权的国度。以至于这个国家的所有人命名自己的名字都非常奇怪。一个人的名字由若干个字符组成&#xff0c;同样的&#xff0c;这些字符的全排列的结果中的每一个字符串&#xff0c;也都是这个人的名字。例如&am…

列举python中常用的数据类型_Python基础知识 变量和简单数据类型

在本章节中&#xff0c;将介绍Python程序中会使用到的各种数据类型&#xff0c;以及如何在程序中使用变量来表示这些数据。其中用到的一些例子均来自《Python编程从入门到实践 第2版》。一、变量1. 变量是标签变量是可以赋给值的标签&#xff0c;也可以说变量指向特定的值。mes…

【HDU - 1412】 {A} + {B} (STL + set)

题干&#xff1a; 给你两个集合&#xff0c;要求{A} {B}. 注:同一个集合中不会有两个相同的元素. Input 每组输入数据分为三行,第一行有两个数字n,m(0<n,m<10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元…

angularjs 开发流程_超级棒的30款web前端开发工具汇总,一定要收藏!

我们与企业内部的Web开发团队进行了很多次交流&#xff0c;研究了很长时间&#xff0c;最后将Debug工具与Web前端开发工具整理汇总在了一起&#xff0c;这些工具对每个Web开发人员都非常有用。这些工具将使您的工作更加轻松&#xff0c;特别是如果您是Web开发人员&#xff0c;W…

*【HDU - 4006】 The kth great number(优先队列 or 线段树)

题干&#xff1a; Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming can choose to write down a number, or ask Xiao Bao what the kth great number is. Because the number written by Xiao Ming is too much, Xiao Bao is feeling giddy…

linux mysql io压力大_MySQL 调优基础(四) Linux 磁盘IO_MySQL

1. IO处理过程磁盘IO经常会成为系统的一个瓶颈&#xff0c;特别是对于运行数据库的系统而言。数据从磁盘读取到内存&#xff0c;在到CPU缓存和寄存器&#xff0c;然后进行处理&#xff0c;最后写回磁盘&#xff0c;中间要经过很多的过程&#xff0c;下图是一个以write为例的 Li…

mysql可以存储标点么_MySQL查询(进阶)(每个标点都是重点)

MySQL 是工作中很普遍的需要用到的,所以必须掌握,而 之前我们一直说的都是怎么存.你只会存不会取有个屁用.所以希望大家在如何查询读取数据这方面多下点功夫.这篇和上一篇都是干货,我也是第一次学.反正我就是这样理解,这样一遍一遍写,一遍一遍看的才慢慢有点感觉的.目前还整理的…

【HDU - 1263】 水果(STL)

题干&#xff1a; 夏天来了~~好开心啊,呵呵,好多好多水果~~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水果销售情况的明细表,这样Joe就可以很容易掌握所有水果的销售情况了. Input 第一行正整数N(0<N<10)表示有N组测试数…

mysql死锁的排查方法_MySQL死锁系列-线上死锁问题排查思路

前言MySQL 死锁异常是我们经常会遇到的线上异常类别&#xff0c;一旦线上业务日间复杂&#xff0c;各种业务操作之间往往会产生锁冲突&#xff0c;有些会导致死锁异常。这种死锁异常一般要在特定时间特定数据和特定业务操作才会复现&#xff0c;并且分析解决时还需要了解 MySQL…

ACM - 欧拉函数(内容)

欧拉函数 &#xff1a; 欧拉函数是数论中很重要的一个函数&#xff0c;欧拉函数是指&#xff1a;对于一个正整数 n &#xff0c;小于 n 且和 n 互质的正整数&#xff08;包括 1&#xff09;的个数&#xff0c;记作 φ(n) 。 完全余数集合&#xff1a; 定义小于 n 且和 n 互质的…

分布式锁和mysql事物扣库存_浅谈库存扣减和锁

先说场景:物品W现在库存剩余1个, 用户P1,P2同时购买.则只有1人能购买成功.(前提是不允许超卖)秒杀也是类似的情况, 只有1件商品,N个用户同时抢购,只有1人能抢到..这里不谈秒杀设计,不谈使用队列等使请求串行化,就谈下怎么用锁来保证数据正确.常见的实现方案有以下几种:1.代码同…