mysql特殊排序_Mysql 查询优化,排序,特殊使用等-年度总结

一.优化

1.数据表联查优化

1.先执行where过滤,再联查;

2.合适的组合索引,

3.字段值:

1)尽量使用数字类型

2)设置默认值,避免where使用字段 = null;

4.慎用某些关键字/字符(in,!=,*),适当使用exists/not exists;

2.limit的优化

普通:

SELECT * FROM table1 WHERE `key` >1000000 LIMIT 100000,5;

内联 :a表内联-临时表(使用a表 limit得出的结果集)

SELECT * FROM table1 a

INNER JOIN (SELECT `key` AS id FROM table1 WHERE `key` >1000000 LIMIT       100000,5 ) b ON a.`key` = b .id;

3.排序优化:

1)尽量使用索引的正序排序,不单独使用order by

2)使用索引排序时:组合索引-结合where字段的索引和排序字段索引

二.查询结果集排序的序号

SELECT @rank:=@rank + 1 AS rank_no                   //@rank 临时变量, @rank:=@rank + 1 初始值+1

FROM

(SELECT 表字段 FROM 表名 ORDER BY `key` DESC ) a, //结果集排序

(SELECT @rank:= 0) b//临时变量初始值

三.其他

1.指定一个自增主键的初始值

alter table tbname auto_increment = x;

2.lpad((str,len,padstr))

用字符串 padstr对 str进行左边填补直至它的长度达到 len个字符长度,然后返回str,如果str的长度长于len,那么它将被截除到len个字符;

3.给定一个日期,返回一个天数

TO_DAYS(date)

4.判断某个字段的值是否包含指定的字符串

INSTR(filed,字符串)

5.replace into  : 已有此行数据(根据主键或者唯一索引判断)替换

6.java项目中mysql jar包升级6.0 后需修改数据源配置

1.

2.url 多加时区配置 serverTimezone=GMT%2B8

376b1bdf4883203938af811d3e5034e5.png

068be7e19a8fd7ea1cc73db7ddbb42c1.png

Aron锅

发布了21 篇原创文章 · 获赞 10 · 访问量 3万+

私信

关注

标签:rank,查询,索引,len,key,Mysql,排序,SELECT

来源: https://blog.csdn.net/weixin_37794901/article/details/104058627

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值