① 复合索引需要注意的点 复合索引,不要跨列或无序使用(最佳左前缀) 复合索引,尽量使用全索引匹配,也就是说,你建立几个索引,就使用几个索引 ② 不要在索引上进行任何操作(计算、函数、类型转换),否则索引...
1)引入案例 #创建新表 createtabletest03 ( a1int(4)notnull, a2int(4)notnull, a3int(4)notnull, a4int(4)notnull ); #创建一个复合索引 createindexa1_a2_a3_te...
1)id关键字的使用说明 ① 案例:查询课程编号为2 或 教师证编号为3 的老师信息: #查看执行计划 explainselectt.* fromteachert,coursec,teacherCardtc wheret.tid=c.tidandt.tc...
需要我们使用explain分析SQL的执行计划。 该执行计划可以模拟SQL优化器执行SQL语句,可以帮助我们了解到自己编写SQL的好坏。 SQL优化器自动优化:最开始讲述MySQL执行原理的时候,我们已经知道MySQL有一个优化器,当你写了一个SQL语句的时候,SQL优...
1)索引分类 单值索引 唯一索引 复合索引 ① 单值索引 利用表中的某一个字段创建单值索引。一张表中往往有多个字段,也就是说每一列其实都可以创建一个索引,这个根据我们实际需求来进行创建。还需要注意的一...
在进行多表连接查询、子查询等操作的时候,由于你写出的SQL语句欠佳,导致的服务器执行时间太长,我们等待结果的时间太长。基于此,我们需要学习怎么优化SQL。
IN关键字适合于外表大而内表小的情况,EXISTS适合于外表小而内表大的情况,执行SQL如下: SELECT * FROM special_s...
如果日常开发中,使用JOIN关键字链接表后,使用的ON关键字进行条件链接时,如果条件没有索引,则会进行全表扫描,执行SQL如下: EXPLAI...
在日常SQL撰写中,在WHERE条件上多多少少会用到一些函数,例如截取字符串,执行SQL如下: 使用EXPLAIN关键字执行这段SQL: EXPLAIN SELECT * FROM student WHERE SUBSTR(id_card,0,9)
为了确保没有NULL值,我们可以设定一个默认值。 SQL分析: 使用EXPLAIN关键字执行这段SQL: EXPLAIN SELECT * FROM student WHERE id_card IS NOT NULL
尽量避免使用!=或<>操作符,下面直接分析SQL: SQL分析: 使用EXPLAIN关键字执行这段SQL: EXPLAIN SELECT * FROM student WHERE id_card != '5031520645'
我们平日写SQL需要多多少少会使用GROUP BY关键字,它主要的功能是去重和分组。 通常它会跟HAVING一起配合使用,表示分组后再根据一定的条件过滤数据,常规执行的SQL如下:
平日开发工作中,我们对于分页的处理一般是这样的: SELECT * FROM student LIMIT 999910,10
比如我想判断年龄为18岁的学生是否存在,我们往往会执行如下SQL: SELECT COUNT(*) FROM student WHERE ...
上面我们按照name,address和phone这个顺序建立了复合索引,相当于建立了(name),(name、address)和(name、address、phone)三个索引,如果我们查询的where条件违背了建立的顺序,则复合索引就失效了,下面直接进行SQL分析:
查询指定的身份证号码的学生,如果我们平时疏忽了给身份证号码加上单引号,执行SQL如下: SELECT * FROM student WHERE...
平时我们日常开发用到的LIKE关键字进行模糊匹配会非常多,但是有的情况会使索引失效,导致查询效率变慢,例如: 只要身份证字段包含50就查出来,执行SQL如下: SELECT * FROM student WHERE id_card like '%50%'...
如果我们要查询指定的性别或者指定的身份证号码的学生,执行SQL如下: SELECT * FROM student WHERE sex = 0 ...
言简意赅,意思就是让小表查出来的数据去再查询大表当中的数据。比如我们想查询学生表当中特殊学生的信息,我们就可以使用以special_student这个小表去驱动student这个大表,...
例如我们根据性别去查询所有学生的信息,虽然这种操作多此一举,直接SELECT *就好了,为了演示这2个关键字的详细区别,使用UNION关键字执行的SQL如下: SELECT * FROM student WHERE sex = 0
UNION
SELEC...