mysql-一些常识

前言

对软件系统的理解和认知,决定了开发者使用它们的高度,下面来简单聊聊关于mysql的一些常识。

引擎

myisaminnodb

编码和排序规则

charset指定数据的编码格式;collation指定数据的排序规则。

utf8mb4(most bytes 4)才是真正的utf8。

时间戳

修改字段为当前时间戳,需要用alter table change column语法。

ALTER TABLE `table` CHANGE COLUMN `column` `column` DATETIME NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'comment';
ALTER TABLE `table` CHANGE COLUMN `column` `column` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'comment';

In子句的长度

oracle的in子句的参数有长度限制(1k);而mysql的in子句参数没有长度限制。

rewriteBatchedStatements

批量操作很慢时,连接url加这个参数。参考mysql文章

https://www.sohu.com/a/292105115_505827

数据库卡死

select * from information_schema.`PROCESSLIST` where command='Query' and time>300 order by time desc;

select concat('kill ',id,';') from information_schema.`PROCESSLIST` where command='Query' and time>300 order by time desc;

分页

分页时,要明确分页的维度。最简单的是根据单表的主键,有时又需要根据其他维度来分页,此时要先查询要分页的维度,然后在查记录,分两次查询。

比如,如果一张商品名称表(id,商品,语言,名称),如果按主键维度,是简单的,size是10就是10;如果是按商品维度,因为一个商品可能有多国语言的名称,给定size为10,就会查出大于10的记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值