220707-MySql按时、天、周、月进行数据统计

最近遇到一个统计的需求场景,针对db中的数据,看一下每天的数据量情况,由于DB中时间字段采用的是int存的时间戳,所以最开始想到的是直接对时间进行按天取整,然后再Group统计数据;

除此之外,使用DATE_FORMAT函数来处理可能是更简洁的方法了,下面分别介绍下两种方式

220507-mysql-connector-java-utf8mb4编码支持

对于mysql而言,我摩恩知道utf8与utf8mb4两种编码之间是不同的,通常来说我们推荐使用后者,可以用来存储emoj表情;通常而言,上面的编码对于我们的实际使用并没有什么影响,然而现实总有特殊场景

下面记录一下定位mysql-connector-java客户端建立连接,设置编码的全过程

220425-MySql之json_extract函数处理json字段

在db中存储json格式的数据,相信大家都或多或少的使用过,那么在查询这个json结构中的数据时,有什么好的方法么?取出String之后再代码中进行解析?

接下来本文将介绍一下Mysql5.7+之后提供的json_extract函数,可以通过key查询value值

210706-MySql表字段修改记录

mysql修改表数据类型的方式

  • 针对一个已经存在的列,修改类型,主要使用 modify
1
alter table xxx modify id int(11) unsigned not null auto_increment comment '主键id'
  • 如果是希望新增一列,使用add column
1
2
-- after 表示这个新增的列在id这一列之后
alter table xxx add column to_add varchar(11) not null default '' comment '新增的列' after `id`;
  • 删除某一列,使用 drop column
1
2
-- 删除 xxx 这一列
alter table drop column xxx;

210207-MySql并发插入死锁引来的锁分析

最近遇到一个由于唯一性索引,导致并发插入产生死锁的场景,在分析死锁产生的原因时,发现这一块还挺有意思的,涉及到MySql中不少的知识点,特此总结记录一下

201125-Mysql 字符集不一致问题

做一个简单的如下的连表查询,居然直接提示错误,居然是字符集不一致的问题,本文记录一下mysql的字符集类型,以及下面这个问题的解决方案

1
2
3
select a.id, b.id from tt as a, t2 as b where a.xx = b.xx

-- Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT) for operation '='

200910-MySql最大连接数查看与修改

原文来自: https://www.cnblogs.com/niuben/p/10834668.html

查看与修改mysql的最大连接数命令如下

1
2
3
4
5
-- 查看最大连接数
show variables like '%max_connections%';

-- 修改最大连接数
set GLOBAL max_connections = 1024;

190906-MySql Timestamp默认值限制问题

今天在往mysql表中新增一列timestamp时,希望设置默认值为0,结果发现居然提示失败,记录一下

190704-mysql索引过长Specialed key was too long问题记录

在创建要给表的时候遇到一个有意思的问题,提示Specified key was too long; max key length is 767 bytes,从描述上来看,是Key太长,超过了指定的 767字节限制

190326-MySql查询时间戳日期互转

mysql内部提供了时间戳和日期互转的函数方便直接使用

  • from_unixtime(time_stamp) : 将时间戳转换为日期
  • unix_timestamp(date) : 将指定的日期或者日期字符串转换为时间戳

190308-Mysql DDL出现长时间等待MDL问题分析

给表新增字段时,发现锁表了,查看进程,提示Waiting for table metadata lock,等待锁释放;然而蛋疼的是几分钟过去了,依然没有任何的进展

现在就有几个问题了

  • Metadata Lock 是什么鬼
  • 是什么原因导致一直等待

190109-mysql 新增多列写法

记录下同时新增多列的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 '价格');

用圆括号包含起来即可

181208-mysql之给现有表新增自增字段

I. 问题描述

一张现有的表,没有自增主键,拿的是一串字符串作为的表的主键,实际使用来,并没有什么问题,但是在扫表的时候就不是特别的方便了,

因此希望给这张表新增一个自增的id

181129-mysql表锁死解决办法

MySQL表修改频繁,导致表被锁死,悲催的表现时这个表完全没法继续使用了,查询,修改,删除都不能使用,这种场景下除了重启mysql服务之外还可以怎么处理?

180710-MySql插入唯一键冲突的三种可选方式

logo

MySql插入时唯一键冲突的几种处理方式

MySql插入一条记录,结果提示主键冲突,怎么办?

批量插入数据时,发现插入的这批数据中,有某些记录存在唯一键冲突,一个一个跳出来就比较麻烦了,有什么好的办法直接忽略掉冲突的记录么?

下面简单记录三种处理方式

180620-mysql之数据库导入导出

mysql之数据库导入导出

实际工作中,需要做一下数据库迁移,需要导入导出数据,记录一下mysqldump的简单用法

180601-MySql性能监控工具MyTop

mysql 性能监控小工具之 mytop

参考: How To Use Mytop to Monitor MySQL Performance

I. 安装与配置

Centos 下可以直接通过yum进行安装

1
yum install mytop

mysql之锁与事务详解

Mysql之锁与事务

平时的业务中,顶多也就是写写简单的sql,连事务都用的少,对锁这一块的了解就更加欠缺了,之前一个大神分享了下mysql的事务隔离级别,感觉挺有意思的,正好发现一个很棒的博文,然后也收集了一些相关知识,正好来学习下,mysql中锁与事务的神秘面纱,主要内容包括

  1. 共享锁和排它锁的区别以及适合范围
  2. mysql的表锁和行锁的区别
  3. 怎么判断一个sql是否执行了锁,执行的是表锁还是行锁
  4. 事务是什么,怎么用
  5. 事务的特性ACID
  6. 事务的隔离级别 (RU, RC, RR, SER)
  7. 如何查看mysql使用的隔离级别

mysql之索引的工作机制

mysql之高性能索引

当db的量达到一定数量级之后,每次进行全表扫描效率就会很低,因此一个常见的方案是建立一些必要的索引作为优化手段,那么问题就来了:

  • 那么什么是索引呢?
  • 索引的实现原理是怎样的?
  • 我们通常说的聚集索引,非聚集索引的区别是什么?
  • 如何创建和使用索引呢?

mysql基本语法学习小结

本篇将主要集中在mysql的使用上,包括如何创建标,如何进行insert,update,select,delete,以及一些常见的sql中关键字的使用姿势

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×