最近遇到一个统计的需求场景,针对db中的数据,看一下每天的数据量情况,由于DB中时间字段采用的是int存的时间戳,所以最开始想到的是直接对时间进行按天取整,然后再Group统计数据;
除此之外,使用DATE_FORMAT
函数来处理可能是更简洁的方法了,下面分别介绍下两种方式
最近遇到一个统计的需求场景,针对db中的数据,看一下每天的数据量情况,由于DB中时间字段采用的是int存的时间戳,所以最开始想到的是直接对时间进行按天取整,然后再Group统计数据;
除此之外,使用DATE_FORMAT
函数来处理可能是更简洁的方法了,下面分别介绍下两种方式
对于mysql而言,我摩恩知道utf8与utf8mb4两种编码之间是不同的,通常来说我们推荐使用后者,可以用来存储emoj表情;通常而言,上面的编码对于我们的实际使用并没有什么影响,然而现实总有特殊场景
下面记录一下定位mysql-connector-java客户端建立连接,设置编码的全过程
在db中存储json格式的数据,相信大家都或多或少的使用过,那么在查询这个json结构中的数据时,有什么好的方法么?取出String之后再代码中进行解析?
接下来本文将介绍一下Mysql5.7+之后提供的json_extract函数,可以通过key查询value值
mysql修改表数据类型的方式
modify
1 | alter table xxx modify id int(11) unsigned not null auto_increment comment '主键id' |
add column
1 | -- after 表示这个新增的列在id这一列之后 |
drop column
1 | -- 删除 xxx 这一列 |
最近遇到一个由于唯一性索引,导致并发插入产生死锁的场景,在分析死锁产生的原因时,发现这一块还挺有意思的,涉及到MySql中不少的知识点,特此总结记录一下
做一个简单的如下的连表查询,居然直接提示错误,居然是字符集不一致的问题,本文记录一下mysql的字符集类型,以及下面这个问题的解决方案
1 | select a.id, b.id from tt as a, t2 as b where a.xx = b.xx |
查看与修改mysql的最大连接数命令如下
1 | -- 查看最大连接数 |
在创建要给表的时候遇到一个有意思的问题,提示Specified key was too long; max key length is 767 bytes
,从描述上来看,是Key太长,超过了指定的 767字节限制
mysql内部提供了时间戳和日期互转的函数方便直接使用
给表新增字段时,发现锁表了,查看进程,提示Waiting for table metadata lock
,等待锁释放;然而蛋疼的是几分钟过去了,依然没有任何的进展
现在就有几个问题了
记录下同时新增多列的sql写法
1 | alter table table_name add (amount decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '数量' , price decimal(20,8) NOT NULL DEFAULT '0.00000000' COMMENT '价格'); |
用圆括号包含起来即可
MySQL表修改频繁,导致表被锁死,悲催的表现时这个表完全没法继续使用了,查询,修改,删除都不能使用,这种场景下除了重启mysql服务之外还可以怎么处理?
参考: How To Use Mytop to Monitor MySQL Performance
Centos 下可以直接通过yum进行安装
1 | yum install mytop |
Update your browser to view this website correctly. Update my browser now