数据库
一只会飞的猪_
笨鸟先飞
展开
-
mysql使用utf8mb4经验
mysql使用utf8mb4经验吐血总结1. utf8 与 utf8mb4 异同先看 官方手册 https://dev.mysql.com/doc/refman/5.6/en/charset-unicode-utf8mb4.html 的说明:The character set named utf8 uses a maximum of three bytes per character and contains only BMP characters. The utf8mb4 charac.转载 2020-12-07 16:36:35 · 598 阅读 · 0 评论 -
navicat使用教程
https://github.com/DoubleLabyrinth/navicat-keygen/blob/windows/doc/how-to-use.windows.md原创 2019-11-18 13:58:35 · 2521 阅读 · 0 评论 -
分布式事务- 二阶段协议
一、前言在单个数据库实例时候,我们可以在一个数据源的事务(本地事务)内做多步数据库操作,在事务内的多个操作要么全部执行生效,要么全部不生效。在多数据实例节点时候,我们对多个实例的数据源进行操作时候就没办法把多个操作放到一个大的事务内来保证原子性了,因为多个实例操作的是不同的数据源,而数据库自带的事务是针对单个数据源来说的。二、二阶段协议单个数据库实例内的事务我们称为本地事务,需要保证多个数据源的操...转载 2018-07-13 16:11:38 · 138 阅读 · 0 评论 -
分布式事务- TCC编程式模式
一、前言严格遵守ACID的分布式事务我们称为刚性事务,而遵循BASE理论(基本可用:在故障出现时保证核心功能可用,软状态:允许中间状态出现,最终一致性:不要求分布式事务打成中时间点数据都是一致性的,但是保证达到某个时间点后,数据就处于了一致性了)的事务我们称为柔性事务,其中TCC编程模式就属于柔性事务,本文我们来阐述其理论。二、TCC编程模式TCC编程模式本质上也是一种二阶段协议,不同在于TCC编...转载 2018-07-13 16:12:09 · 463 阅读 · 0 评论 -
TX-LCN分布式事务原理
框架介绍LCN分布式事务框架其本身并不创建事务,而是基于对本地事务的协调从而达到事务一致性的效果核心步骤创建事务组是指在事务发起方开始执行业务代码之前先调用TxManager创建事务组对象,然后拿到事务标示GroupId的过程。添加事务组添加事务组是指参与方在执行完业务方法以后,将该模块的事务信息添加通知给TxManager的操作。关闭事务组是指在发起方执行完业务代码以后,将发起方执行结果状态通知...转载 2018-07-13 16:21:26 · 6645 阅读 · 1 评论 -
测评
https://portswigger.net/burp/原创 2018-09-10 11:35:07 · 182 阅读 · 0 评论 -
mybatis-config.xml配置
在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-spring 中,则使用SqlSessionFactoryBean 来替代。示例<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">...转载 2018-12-05 16:27:34 · 1380 阅读 · 0 评论 -
MySQL中查询时间最大的一条记录
在项目中要查询用户最近登录的一条记录的 ip直接写如下 SQL: 1 SELECTip,MAX(act_time)FROMusers_loginGROUPBYlogin_id; 但是这样是取不出用户登录记录中时间最大的那个 ip , 仅仅只是查到了最大时间,和 ip 没关系找了相当多的文章,经过自己测试,发现一个比较好的方式处理这个...原创 2019-03-04 13:15:40 · 11782 阅读 · 0 评论 -
分布式事务- 三阶段协议
一、前言前面我们介绍了为解决分布式事务而提出来的的二阶段协议,本文首先来讲解二阶段的不足,然后阐述三阶段协议,三阶段协议也是一个标准的协议,也并没有说具体如何实现。二、二阶段协议存在的问题主要是同步阻塞问题,在二阶段的第一阶段所有参与者接受到事务协调器的事务准备请求后,会在本地开启并执行事务,但是没有提交事务。所有参与者等待第二阶段事务协调器发出事务提交或者回滚后才会提交或者回滚事务。而在这期间所...转载 2018-07-13 16:11:08 · 157 阅读 · 0 评论 -
mysql数据库表比较diff
select table_name frominformation_schema.tables where table_schema='ehsuat' and table_type='basetable'; 先将所有表名查出来放在一个tables.txt 文件中 set serverinfo= mysqldiff--server1=user:password@ip:port--server2=us...原创 2018-06-07 15:18:14 · 2475 阅读 · 0 评论 -
悲观锁和乐观锁
1、悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。2、乐观锁( Optimistic Locking ) 相对悲观锁而言转载 2017-07-06 14:03:04 · 282 阅读 · 0 评论 -
mysql join 内连接和外连接
table1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):也可以省去inner,比如join a on b,取得两个表中存在连接匹配关系的记录。LEFT [OUTER]JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录。RIGHT[OUTER] JOIN(右连接转载 2017-07-07 08:50:31 · 559 阅读 · 0 评论 -
分布式事务、基于Best Efforts 1PC模式的事务
系统经sharding改造之后,原来单一的数据库会演变成多个数据库,如何确保多数据源同时操作的原子性和一致性是不得不考虑的一个问题。总体上看,目前对于一个分布式系统的事务处理有三种方式:分布式事务、基于Best Efforts 1PC模式的事务以及事务补偿机制。我们下面对这三种处理方式一一进行分析。本文原文链接:http://blog.csdn.net/bluishglc/article/deta转载 2017-08-01 08:49:04 · 2399 阅读 · 0 评论 -
mysql spring分布式事务处理
1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事务管理器是因为,翻译 2017-08-03 18:27:19 · 3774 阅读 · 0 评论 -
Mysql外健约束on update,on delete
转自:http://blog.csdn.net/dingding_12345/article/details/47905715On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性。现在分别对他们的属性含义做个解释。ON DELETErestrict(约束):当在父表(即外键的来源表)中删除对应记录原创 2017-07-27 08:54:19 · 475 阅读 · 0 评论 -
mysql安装教程
1.找到安装包2.双击安装3.选择Custom(自定义)或者complete4.安装(这里按照默认的执行即可)5.安装路径的展示(点击Install)6.等待7.选中跳过,点击Next8.点击Finish9.Next10.默认,点击Next11.默认,Next(以后有需求只服务端时,原创 2017-07-27 18:17:43 · 367 阅读 · 0 评论 -
mysql插入当前时间戳
1、MySQL 脚本实现用例--添加CreateTime 设置默认时间 CURRENT_TIMESTAMP ALTER TABLE `table_name`ADD COLUMN `CreateTime` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' ; --修改CreateTime 设置默认时原创 2017-10-18 14:16:21 · 28367 阅读 · 0 评论 -
MySQL表中存储UUID值作为主键,使用UNHEX()提升性能
假设我们有一个用户表,每个用户都有一个UUID。MySQL有一个UUID()函数,它使MySQL生成一个UUID值,并以VARCHAR(36)类型的可读形式返回。让我们试试MySQL 5.7.8:mysql> select uuid();+--------------------------------------+| uuid()翻译 2018-01-03 15:34:13 · 19114 阅读 · 0 评论 -
mysql select ....for update排他锁
排他锁的申请前提:没有线程对该结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞1、FOR UPDATE 仅适用于InnoDB,且必须在事务区块(BEGIN/COMMIT)中才能生效。beginSELECT * FROM x'x'x WHERE xxx FOR UPDATEcommit2、使用select…for update会把数据给锁住,不过我们需要注意一些转载 2017-07-06 14:11:37 · 1157 阅读 · 0 评论