mysql 关联查询 on条件过滤和where的区别 Mysql主键bigint自增 慢查询日志开启

MySql 关联查询时 on条件过滤和where条件过滤的区别_mysql连接查询之前过滤_炳秦的博客-CSDN博客

 AND过滤的使用场景

 a left join b on a.id=b.id AND b.date=今天   这样可以查询 a表有 b表缩小了范围后的一对多的数据.

 关联查询时 on条件过滤和where条件过滤的区别

-- 将过滤条件放在on后面,是在联合查询之前,先对右表进行查询过滤(只对右表条件过滤有效, 左表无效),将查询过滤的结果作为临时表,再和左表进行联合查询;左表结果是全量的

-- mysql中left join on后面and 和where条件查询的差异

-- 说下原因:
(1):ON后面的筛选条件主要是针对的是关联表【而对于主表筛选条件不适用】。
(2):对于主表的筛选条件应放在where后面,不应该放在ON后面
(3):对于关联表我们要区分对待。如果是要条件查询后才连接应该把查询件放置于ON后。如果是想再连接完毕后才筛选就应把条件放置于where后面
(4):对于关联表我们其实可以先做子查询再做join (这样就不用 on后接 and条件了)


Mysql中Bigint与Java数据类型对应关系

Mysql主键有符号的bigint自增 对应java的Long类型

用navicat建表, 主键用bigint, 无需勾选, 就是有符号的
MySQL中,有符号类型 Bigint(20)的取值范围为-9223372036854775808~9223372036854775807,与Java.lang.Long的取值范围完全一致,mybatis/mybatis-plus会将 Bigint(20)映射为Long类型。


MySQL中,无符号类型Bigint(20) unsigned的取值范围是0 ~ 18446744073709551615,其中有一半的数据超出了Java中Long类型的取值范围,mybatis/mybatis-plus会将 Bigint(20) unsigned映射为BigInteger类型。
MySQL中有符号int类型最大可以支持到约22亿,这个范围远远超过了我们实际项目中的需求和MySQL单表所能支持的性能上限。对于OLTP应用来说,单表的数据规模一般控制在千万级别,单表数据量不会达到亿的级别(Mysql单表性能问题要考虑在内)。
Mysql中无符号int类型,上限为42亿,预留量非常充足。
 

开启慢查询日志

1.mysql如何开启慢查询日志:
在 my.ini配置添加如下配置, 重启mysql即永久开启慢查询日志。

long_query_time = 1
log-slow-queries = /usr/local/mysql/data/slow.log

2. mysql查看慢查询日志:cat  /usr/local/mysql/data/slow.log 路径文件即可

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值