在一些业务场景中,会使用NOT EXISTS语句确保返回数据不存在于特定集合,部分同事会发现NOT EXISTS有些场景性能较差,甚至有些网上谣言说”NOT EXISTS不走索引”,哪对于NOT EXISTS语句,我们如何优化呢?
以今天优化的SQL为例,优化前SQL为:
2024年04月20日
在一些业务场景中,会使用NOT EXISTS语句确保返回数据不存在于特定集合,部分同事会发现NOT EXISTS有些场景性能较差,甚至有些网上谣言说”NOT EXISTS不走索引”,哪对于NOT EXISTS语句,我们如何优化呢?
以今天优化的SQL为例,优化前SQL为:
2024年04月20日
续一下之前讲的MySQL数据库sql基础练习第三部分,大家可以跟着做一下。
CREATE TABLE students (sno VARCHAR(3) NOT NULL, sname VARCHAR(4) NOT NULL, ssex VARCHAR(2) NOT NULL, sbirthday DATETIME, class VARCHAR(5)) CREATE TABLE courses (cno VARCHAR(5) NOT NULL, cname VARCHAR(10) NOT NULL, tno VARCHAR(10) NOT NULL) CREATE TABLE scores (sno VARCHAR(3) NOT NULL, cno VARCHAR(5) NOT NULL, degree NUMERIC(10, 1) NOT NULL) CREATE TABLE teachers (tno VARCHAR(3) NOT NULL, tname VARCHAR(4) NOT NULL, tsex VARCHAR(2) NOT NULL, tbirthday DATETIME NOT NULL, prof VARCHAR(6), depart VARCHAR(10) NOT NULL)
2024年04月20日
当数据表没有设计相关索引时,查询会扫描全表。
sql复制代码create table test_temp
(
test_id int auto_increment
primary key,
field_1 varchar(20) null,
field_2 varchar(20) null,
field_3 bigint null,
create_date date null
);
explain
select * from test_temp where field_1 = 'testing0';
2024年04月20日
有一个业务是查询最新审核的5条数据
SELECT `id`, `title` FROM `th_content` WHERE `audit_time` < 1541984478 AND `status` = 'ONLINE' ORDER BY `audit_time` DESC, `id` DESC LIMIT 5;
2024年04月20日
欢迎来到MySQL实战第13篇,修炼500篇成为MySQL高手
<1>创建表
create table test_not_null(