CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name (
index_col_name,... ) ;
SHOW INDEX FROM table_name(表名) ;
DROP INDEX index_name(索引名称) ON table_name(表名) ;
-- 创建数据库test
create database if not exists test;
use test;
-- 创建表tb_user
create table tb_user(
id int primary key auto_increment comment '主键',
name varchar(50) not null comment '用户名',
phone varchar(11) not null comment '手机号',
email varchar(100) comment '邮箱',
profession varchar(11) comment '专业',
age tinyint unsigned comment '年龄',
gender char(1) comment '性别 , 1: 男, 2: 女',
status char(1) comment '状态',
createtime datetime default now() comment '创建时间'
) comment '系统用户表';
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('吕布', '18877990000', 'lvbu666@163.com', '软件工程', 23, '1', '6');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('曹操', '18877990001', 'caocao666@qq.com', '通讯工程', 33, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('赵云', '18877990002', '18877990@139.com', '英语', 34, '1', '2');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('孙悟空', '18877990003', '18877990@sina.com', '工程造价', 54, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('花木兰', '18877990004', '19980729@sina.com', '软件工程', 23, '2', '1');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('大乔', '18877990005', 'daqiao666@sina.com', '舞蹈', 22, '2', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('露娜', '18877990006', 'luna_love@sina.com', '应用数学', 24, '2', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('程咬金', '18877990007', 'chengyaojin@163.com', '化工', 38, '1', '5');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('项羽', '18877990008', 'xiaoyu666@qq.com', '金属材料', 43, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('白起', '18877990009', 'baiqi666@sina.com', '机械工程及其自动化', 27, '1', '2');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('韩信', '18877990010', 'hanxin520@163.com', '无机非金属材料工程', 27, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('荆轲', '18877990011', 'jingke123@163.com', '会计', 29, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('兰陵王', '18877990012', 'lanlinwang666@126.com', '工程造价', 44, '1', '1');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('狂铁', '18877990013', 'kuangtie@sina.com', '应用数学', 43, '1', '2');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('貂蝉', '18877990014', '84958948374@qq.com', '软件工程', 40, '2', '3');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('妲己', '18877990015', '2783238293@qq.com', '软件工程', 31, '2', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('芈月', '18877990016', 'xiaomin2001@sina.com', '工业经济', 35, '2', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('嬴政', '18877990017', '8839434342@qq.com', '化工', 38, '1', '1');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('狄仁杰', '18877990018', 'jujiamlm8166@163.com', '国际贸易', 30, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('安琪拉', '18877990019', 'jdodm1h@126.com', '城市规划', 51, '2', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('典韦', '18877990020', 'ycaunanjian@163.com', '城市规划', 52, '1', '2');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('廉颇', '18877990021', 'lianpo321@126.com', '土木工程', 19, '1', '3');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('后羿', '18877990022', 'altycj2000@139.com', '城市园林', 20, '1', '0');
INSERT INTO tb_user (name, phone, email, profession, age, gender, status) VALUES ('姜子牙', '18877990023', '37483844@qq.com', '工程造价', 29, '1', '4');
-- 表中数据
select * from tb_user;
-- 创建单列索引
create index user_name_index on tb_user(name);
create unique index user_phone_index on tb_user(phone);
create index user_pro_age_sta_index on tb_user(profession,age,status);
create index user_email_index on tb_user(email);
show index from tb_user;
-- session 是查看当前会话 ;
-- global 是查询全局数据 ;
SHOW GLOBAL STATUS LIKE 'Com_______';
show variables like '%slow_query_log%'
set global slow_query_log =1;
show variables like '%slow_query_log%';
--设置完毕后,重新登陆后起效 (不需要重启服)
set global long_query_time =2;
-- 查看慢查询阈值时间
show variables like '%long_query_time%'; 务)
CREATE TABLE tb_sku (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品id',
`sn` varchar(100) NOT NULL COMMENT '商品条码',
`name` varchar(200) NOT NULL COMMENT 'SKU名称',
`price` int(20) NOT NULL COMMENT '价格(分)',
`num` int(10) NOT NULL COMMENT '库存数量',
`alert_num` int(11) DEFAULT NULL COMMENT '库存预警数量',
`image` varchar(200) DEFAULT NULL COMMENT '商品图片',
`images` varchar(2000) DEFAULT NULL COMMENT '商品图片列表',
`weight` int(11) DEFAULT NULL COMMENT '重量(克)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`category_name` varchar(200) DEFAULT NULL COMMENT '类目名称',
`brand_name` varchar(100) DEFAULT NULL COMMENT '品牌名称',
`spec` varchar(200) DEFAULT NULL COMMENT '规格',
`sale_num` int(11) DEFAULT '0' COMMENT '销量',
`comment_num` int(11) DEFAULT '0' COMMENT '评论数',
`status` char(1) DEFAULT '1' COMMENT '商品状态 1-正常,2-下架,3-删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='商品表';
copy *.sql all_sku.sql
select * from tb_user; -- 这条SQL执行效率比较高, 执行耗时 0.00sec
select count(*) from tb_sku; -- 由于tb_sku表中, 预先存入了1000w的记录, count一次,耗时
10s左右
show variables like '%slow_query_log%';
SELECT @@have_profiling ;
select * from tb_user;
select * from tb_user where id = 1;
select * from tb_user where name = '白起';
select count(*) from tb_sku;
-- 查看每一条SQL的耗时基本情况
show profiles;
show profile for query query_id;
-- 查看指定query_id的SQL语句CPU的使用情况
show profile cpu for query query_id;
-- 直接在select语句之前加上关键字 explain / desc
EXPLAIN SELECT 字段列表 FROM 表名 WHERE 条件 ;
-- 语句中id表示的是主键
explain select * from tb_user where id=1;
-- name 是索引
explain SELECT * FROM tb_user WHERE name= '李四';
explain SELECT * FROM tb_user WHERE id BETWEEN 1 AND 10;
explain SELECT * FROM tb_user;