这几个SQL语法的坑,你踩过吗
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、常见框架、分布式、微服务、设计模式、架构等核心知识点,欢迎star~
地址:https://github.com/Tyson0314/Java-learning
大家好,我是大彬~
今天给大家分享几个SQL常见的“坏毛病”及优化技巧。
SQL语句的执行顺序:
大约 8 分钟
本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、常见框架、分布式、微服务、设计模式、架构等核心知识点,欢迎star~
地址:https://github.com/Tyson0314/Java-learning
大家好,我是大彬~
今天给大家分享几个SQL常见的“坏毛病”及优化技巧。
SQL语句的执行顺序:
作为在后端圈开车的多年老司机,是不是经常听到过,“mysql 单表最好不要超过 2000w”,“单表超过 2000w 就要考虑数据迁移了”,“你这个表数据都马上要到 2000w 了,难怪查询速度慢”
这些名言民语就和 “群里只讨论技术,不开车,开车速度不要超过 120 码,否则自动踢群”,只听过,没试过,哈哈。
下面我们就把车速踩到底,干到 180 码试试…….
在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前 1000 个人的姓名、年龄。
假设这个表的部分定义是这样的:
CREATE TABLE `t` (
`id` int(11) NOT NULL,
`city` varchar(16) NOT NULL,
`name` varchar(16) NOT NULL,
`age` int(11) NOT NULL,
`addr` varchar(128) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `city` (`city`)
) ENGINE=InnoDB;
SELECT COUNT(*)会不会导致全表扫描引起慢查询呢?
SELECT COUNT(*) FROM SomeTable