MySql
欧拉兔
vfrvwr
展开
-
SQL关键字之Group By
Group By是一个我们在日常工作学习过程中经常遇到的一个Mysql关键字。现总结其用法如下。准备一张表和一些记录创建学生的成绩表courses:CREATE TABLE `courses` (`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '自增id',`student` VARCHAR(255) DEFAULT N...原创 2019-06-18 21:43:02 · 312 阅读 · 0 评论 -
MySQL高级知识——Order By关键字优化
在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index。1.准备1.1 创建test表。drop table if exists test;create table test(id int primary key auto_increment,c1 varchar(10),c2 varchar(10...原创 2019-07-09 01:39:20 · 653 阅读 · 0 评论 -
MySQL-EXISTS
提前准备建立两张表并为其添加一些数据一张会员表,一张会员下单表。会员表数据id user email 1 abei abei@nai8.me 2 wh abei@maige123.com 3 liuhuan 267765@qq.com 订单表id user_id create_time ......原创 2019-07-08 23:50:06 · 1332 阅读 · 0 评论 -
MySQL高级知识——小表驱动大表
Exists 和 In当B表的数据集必须小于A表的数据集时,用in优于existsselect * from A where id in(select id from B)当A表的数据集小于B表的数据集时,用exists优于inselect * from A where exists (select 1 from B where B.id = A.id)注意:A表与B表...原创 2019-07-08 20:37:45 · 347 阅读 · 0 评论 -
MySQL-索引优化(八)
字符串不加单引号索引会失效mysql> select * from staffs where name=2000;+----+------+-----+-----+---------------------+| id | name | age | pos | add_time |+----+------+-----+-----+---------------...原创 2019-07-08 03:33:33 · 156 阅读 · 0 评论 -
MySQL-索引优化(七)
两边都有百分号的,有全表扫描mysql> EXPLAIN SELECT * FROM staffs where name LIKE '%july%';+----+-------------+--------+------------+------+---------------+------+---------+------+------+----------+-----------...原创 2019-07-08 03:28:07 · 268 阅读 · 0 评论 -
MySQL-索引优化(六)
is null, is not null也法法使用索引mysql> EXPLAIN SELECT * from staffs WHERE name IS NULL;+----+-------------+-------+------------+------+---------------+------+---------+------+------+----------+-----...原创 2019-07-08 03:19:46 · 113 阅读 · 0 评论 -
MySQL-索引优化(五)
MySQL在使用不等于(!=或<>)的时候无法使用索引,会导致全表扫描先看等于的情况再看不等于的情况mysql> EXPLAIN SELECT * from staffs WHERE name='july';+----+-------------+--------+------------+------+-----------------------+--------...原创 2019-07-08 03:18:43 · 152 阅读 · 0 评论 -
MySQL-索引优化(四)
尽量使用覆盖索引mysql> EXPLAIN SELECT * FROM staffs WHERE name='july' AND age = 25 and pos = 'manager';+----+-------------+--------+------------+------+-----------------------+-----------------------+-...原创 2019-07-07 23:47:02 · 98 阅读 · 0 评论 -
MySQL-索引优化(三)
存储引擎不能使用索引中范围条件右边的列mysql> EXPLAIN SELECT * FROM staffs where name='july' AND age > 25 and pos = 'manager';+----+-------------+--------+------------+-------+-----------------------+---------...原创 2019-07-07 23:45:10 · 117 阅读 · 0 评论 -
MySQL-索引优化(二)
不在索引列上做任何操作(计算、函数、(自动或手动)类型转换),会导致索引失效而转向全表扫描。mysql> EXPLAIN SELECT * FROM staffs where name='july';+----+-------------+--------+------------+------+-----------------------+--------------------...原创 2019-07-07 23:37:41 · 117 阅读 · 0 评论 -
MySQL-索引优化(一)
数据准备CREATE TABLE staffs( `id` INT PRIMARY KEY AUTO_INCREMENT, `name` VARCHAR(24) NOT NULL DEFAULT '' COMMENT '姓名', `age` INT NOT NULL DEFAULT 0 COMMENT '年龄', `pos` VARCHAR(20) NOT NULL DEFA...原创 2019-07-07 21:30:52 · 616 阅读 · 0 评论 -
Mysql索引优化注意
提高mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num...原创 2019-06-21 01:55:35 · 100 阅读 · 0 评论 -
Mysql谓词(LIKE ,BETEWWN,IN ......)
谓词,通常来说是函数的一种,是需要满足特定条件的函数。该条件就是“返回值是真值”,即返回的值必须为TRUE/FALSE/UNKNOWN。1.LIKE谓词—字符串的部分一致查询截至目前,字符串的查询都是用"="进行查询,也就是只有在"="两侧完全一致时才能为真。与之相反,LIKE谓词更加模糊,即字符串部分一致也为真。首先创建一张名为SampleLike的表,如下:+---------...原创 2019-06-21 01:16:58 · 1586 阅读 · 0 评论 -
SQL函数
1.函数的种类函数大致分为以下几类:算术函数(用以进行数值计算) 字符串函数(用以进行字符串操作) 日期函数(用以进行日期操作) 转换函数(用以转换数据类型和值) 聚合函数(用以进行数据聚合)2.算术函数算术函数是最基本的函数主要是加减乘除四则运算。为了方便演示算术函数,我们先创建一张名称为SampleMath的表,如下(m NUMERIC(10,3)n INTEGE...原创 2019-06-21 00:26:47 · 230 阅读 · 0 评论 -
SQL表的加减法
1.表的加法——UNION首先创建一个名称为shop_list2的表便于代码演示,如下:+---------+-----------+-----------+------------+-----------+---------------+| shop_id | shop_name | shop_type | sell_price | buy_price | register_date...原创 2019-06-20 23:16:33 · 9112 阅读 · 0 评论 -
MySQL高级知识——JOIN
MySQL中各种连接操作以person和address两张表为例进行说明,两表结构如下:select * from person;+----+------+------+| id | name | age |+----+------+------+| 1 | AAA | 18 || 2 | BBB | 25 || 3 | CCC | 21 |+--...原创 2019-06-20 18:38:54 · 183 阅读 · 0 评论 -
MySQL高级知识——索引
索引在sql调优部分占据着重要的位置,了解并深入索引对我们来说也是非常重要的。本篇主要介绍MySQL中索引的相关知识点。1.索引是什么MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构。因此索引的本质就是数据结构。索引的目的在于提高查询效率,可类比字典、书籍的目录等这种形式。可简单理解为“排好序的快速查找数据结构”。在数据之外,数据库系统还维护着满足特...原创 2019-07-09 01:52:44 · 245 阅读 · 0 评论