Mysql优化单表查询

借助explain分析SQL,判断该怎么建立索引。

还需要注意,有些情况会导致索引失效,用不上索引,应该优化SQL,应用上索引。

什么情况导致索引失效?

  1、在索引列上做任何操作(计算、函数、类型转换(字符串不加引号时))

  2、索引中范围条件右边的列

  3、在使用不等于(!=或<>)和IS NOT NULL 判断的时候

  4、like匹配时,字符串以%开头  

原文地址:https://www.cnblogs.com/xingrui/p/10300627.html

时间: 2024-08-30 04:32:13

Mysql优化单表查询的相关文章

跟王老师学MySQL:单表查询

跟王老师学MySQL:单表查询 主讲教师:王少华   QQ群号:483773664 学习内容 查询所有字段 查询指定字段 查询指定记录 带in关键字的查询 带between and关键字的查询 带like关键字的查询 查询空值 带and的多条件查询 带or的多条件查询 查询不重复记录 对查询结果进行排序 单表查询是指从一张表中查询所需要的数据.查询数据时,可以从一张表中查询数据,也可以从多张表中同时查询数据.两者的查询方式上有一定的区别.因为单表查询只在一张表上进行操作,所以查询比较简单. 一.

MySQL之单表查询

一.单表查询的语法 SELECT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 二.关键字的执行顺序 1.找到表:from 2.拿着where指定的约束条件,去文件/表中取出一条条记录 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 4.将分组的结果进行having过滤 5.执行select 6.去重 7.将结果按条件排序:order by 8

Mysql数据库单表查询

1.单表查询语法 #查询数据的本质:mysql会到你本地的硬盘上找到对应的文件,然后打开文件,按照你的查询条件来找出你需要的数据.下面是完整的一个单表查询的语法 select * from,这个select * 指的是要查询所有字段的数据. SELECT distinct 字段1,字段2... FROM 库名.表名 #from后面是说从库的某个表中去找数据,mysql会去找到这个库对应的文件夹下去找到你表名对应的那个数据文件,找不到就直接报错了,找到了就继续后面的操作 WHERE 条件 #从表中

Mysql的单表查询

MySQL单表查询 汇总 单表查询的语法及关键字执行的优先级 from 1.找到表:from where 2.拿着where指定的约束条件,去文件/表中取出一条条记录 group by 3.将取出的一条条记录进行分组group by,如果没有group by,则整体作为一组 select 4.执行select(去重) distinct having 5.将分组的结果进行having过滤 order by 6.将结果按条件排序:order by limit 7.限制结果的显示条数 简单查询 创建表

【MySQL】单表查询 -- 2019-08-11 19:25:09

原文: http://106.13.73.98/__/25/ 目录 where 约束 group by 分组查询 聚合函数 having 过滤 order by 查询排序 limit 限制查询的记录数 # 语法 select 字段1, 字段2 ... from 表名 where 条件 group by field having 筛选 order by field limit 限制条数 重点在于关键字的执行优先级:from where group by having select distinct

【MySQL】单表查询

" 目录 where 约束 group by 分组查询 聚合函数 having 过滤 order by 查询排序 limit 限制查询的记录数 # 语法 select 字段1, 字段2 ... from 表名 where 条件 group by field having 筛选 order by field limit 限制条数 重点在于关键字的执行优先级:from where group by having select distinct order by limit 1. 找到表:from 2

Mysql ==》 单表查询

主要内容: 1.查询语法 2.关键字的执行优先级 3.简单查询 4.单条件查询 5.where 约束 6.分组查询: group by 7.使用聚合函数查询 8.having 过滤 9.查询排序:order by 10限制查询的记录数:limit 11.使用正则表达式查询 先建数据库(文件夹).后表(文件)带字段,后记录(内容). company.employee 员工id id int 姓名 emp_name varchar 性别 sex enum 年龄 age int 入职日期 hire_d

MySQL 之 单表查询

一.简单查询 -- 创建表DROP TABLE IF EXISTS `person`;CREATE TABLE `person` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` tinyint(4) DEFAULT '0', `sex` enum('男','女','人妖') NOT NULL DEFAULT '人妖', `salary` decimal(10,2) NOT NULL DEFAUL

mysql之单表查询__我自己敲的代码

1.select * from person; #查看全部 2.select name,sex from person;   #只选择name和sex这两列name和sex之间有一个逗号的 3.select name,sex as '性别' from person #将name和sex两列选择出来,并将sex这一列的列名字改名字为性别,或者是为字段起别名 4.select salary+200 from person;  #将person中的salary列选出来,并将salary中数据都加200