随笔分类 - mysql
摘要:很多业务场景都需要防重复提交,比如提交订单,抢券,组团等场景。 在这里,主要陈述下一般的防重复提交方式。具体归类,会分为新增场景,更新场景。重复提交可以分为几种类型,比如: 短时间连续重复提交; 不定时间重复提交; 新增场景 新增场景无论是短时间连续重复提交还是不定时间重复提交,都是相似的解决方案。
阅读全文
摘要:在MySQL中,默认的隔离级别是RR。 事务的隔离级别如下所示: 隔离级别 脏读 可重复读 幻象读 RU 存在 存在 存在 RC 不存在 存在 存在 RR 不存在 不存在 存在 Serializable 不存在 不存在 不存在 脏读:当前事务可能读到其它事务未提交的数据。 可重复读:当前事务内,多次
阅读全文
摘要:先做抽象定义如下: 定义一条数据记录为一个二元组[key, data],key为记录的键值,对于不同的数据记录,key是互不相同的;data为数据记录除key外的数据。 B-tree的特点: d为大于1的一个正整数,称为B-Tree的度(度可以理解为空间一定的条件下内节点的有效容量,与key大小和d
阅读全文
摘要:mysql的逻辑架构图如下: 当开启查询缓存时,mysql会将查询结果缓存到查询缓存区域,结果对应的key是使用查询语句,数据库名称,客户端协议的版本等因素算出的一个hash值。 在下次查询时,根据一些条件计算出hash值,如果能与引用表中的数据相关联,则表示查询命中。 可以通过如下sql查看查询缓
阅读全文
摘要:慢查询: https://blog.csdn.net/leshami/article/details/39829605 日志组成: https://blog.csdn.net/leshami/article/details/39801867 日志提取: https://blog.csdn.net/l
阅读全文
摘要:在一般的查询中,都要求尽量围绕创建的索引进行。针对索引,常用的有主键索引,单列索引,组合索引,索引合并等。 在评价索引时,关键看区分度。索引区分度=索引列唯一值/表记录数。 如果在区分度很低的列上建索引,那索引扫描的rows会相当大,该索引的性能表现就基本接近全表扫描了。 主键索引 是一种特殊的唯一
阅读全文
摘要:如下表结构: 在执行联合查询时,如下2种写法的执行计划有明显差别。 第一种: 第二种: 两者的差别在于order by的表字段不同。 看执行计划: 第一种的执行计划: 第二种的执行计划: rows的差别忽略,因为数据在不停的新增过程中。 第一种方式有主键索引,不需要使用临时表。第二种全表扫描,使用临
阅读全文
摘要:mysql做关联查询时,一般使用join....on.....的语法。 但还有其它两种语法形式,三者的主要区别在于书写形式,其余方面并无太多差异。 如下三种形式: join....on... 与 join... using()两种形式mysql在执行时都会处理成第三种。 这两者的区别在于: join
阅读全文
摘要:MySQL 的yearweek函数默认是从周日~周六,需求需要从周一到周日,看了MySQL的文档后,按照如下使用即可更改开始日期。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_week 形如
阅读全文
摘要:<!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> MySQL的bigint unsigned类型,对应java的BigInteger类型,在基于mybatis框架时,如果我将bigint unsigned类型的字段的返回放在一个m
阅读全文
摘要:1.修改my.cnf 2.为了支持之前用utf8创建的表同样支持emoji,你还需要将之前的表修改未utf8mb4字符集 3.如果处理完成之后,插入还是失败,那么在db的URL参数上不要加characterEncoding参数。 不加这个参数时,默认值就时autodetect。 4.mysql支持e
阅读全文