MySQL group by mysql 分组查询取第一条(时间排序)
业务背景
mysql 分组后,取每组第一条数据
环境
MySQL:5.7
SQL
select * from (select distinct(a.id) tid, a.* from template_detail a
where a.template_id in (3, 4)
order by a.id desc) tt
...
2018-09-03 00:57:39 |
SQL
MySQL 数据库最佳实践,count(*),全文索引,事务、行锁与表锁、外键
count(*)
知识点
MyISAM 会直接存储总行数,InnoDB 则不会,需要按行扫描。
潜台词是,对于 select count(*) from t;
如果数据量大,MyISAM会瞬间返回,而InnoDB则会一行行扫描。
实践
数据量大的表,InnoDB 不要轻易 select count(*),性能消耗极大。
常见坑
只有查询全表的总行数,MyISAM才会直接返回结...
2018-09-03 00:57:39 |
SQL
JTA
JTA
概念
Java Transaction API (JTA) 指定事务管理器和分布式事务系统中涉及的各方之间的标准Java接口:资源管理器、应用服务器和事务应用程序。
JTA规范是Sun Microsystems与交易处理和数据库系统领域的领先行业合作伙伴合作开发的。
参考 JSR-907
作用
JTA提供:
划分事务边界
X/Open...
2018-09-02 09:30:53 |
API
Idempotency Patterns 幂等性的概念, RESTful 幂等操作, 幂等的实际使用
幂等性
概念
在计算机科学中,依其应用的语境不同,幂等性一词可能有不同的含义:
在命令式编程中,如果在一个或几个调用之后系统状态保持不变,则带有副作用的子程序是幂等的,换句话说,如果从系统状态空间到与子程序相关联的自身的函数在定义中给出的数学意义上是幂等的;
在函数式编程中,如果一个纯函数在定义中给出的数学意义上是幂等的,那么它就是幂等的。
在许多情况下,这是一个非常有用的属性,因...
2018-09-02 06:56:19 |
Design
Compensating Transaction pattern 分布式锁事务
数据库分布式事务
SQL 分布式事务 distributed transaction 二段提交, 本地消息表, Saga 事务, 最大努力通知
分布式事务-本地消息表 (经典的ebay模式)
TCC Try-Confirm-Cancel 分布式事务
SQL 2PC-两阶段提交 SQL 分布式事务两阶段提交协议(2PC)是一种原子承诺协议(ACP)。
SQL 2PL-两阶段锁定
3...
2018-09-02 05:27:14 |
SQL
3pc Three-Phase Commit 三阶段提交 分布式事务
数据库分布式事务
SQL 分布式事务 distributed transaction 二段提交, 本地消息表, Saga 事务, 最大努力通知
分布式事务-本地消息表 (经典的ebay模式)
TCC Try-Confirm-Cancel 分布式事务
SQL 2PC-两阶段提交 SQL 分布式事务两阶段提交协议(2PC)是一种原子承诺协议(ACP)。
SQL 2PL-两阶段锁定
3...
2018-09-02 03:03:38 |
SQL
SQL 2PL-两阶段锁定
数据库分布式事务
SQL 分布式事务 distributed transaction 二段提交, 本地消息表, Saga 事务, 最大努力通知
分布式事务-本地消息表 (经典的ebay模式)
TCC Try-Confirm-Cancel 分布式事务
SQL 2PC-两阶段提交 SQL 分布式事务两阶段提交协议(2PC)是一种原子承诺协议(ACP)。
SQL 2PL-两阶段锁定
3...
2018-09-02 03:03:38 |
SQL
SQL 2PC-两阶段提交 SQL 分布式事务两阶段提交协议(2PC)是一种原子承诺协议(ACP)。
数据库分布式事务
SQL 分布式事务 distributed transaction 二段提交, 本地消息表, Saga 事务, 最大努力通知
分布式事务-本地消息表 (经典的ebay模式)
TCC Try-Confirm-Cancel 分布式事务
SQL 2PC-两阶段提交 SQL 分布式事务两阶段提交协议(2PC)是一种原子承诺协议(ACP)。
SQL 2PL-两阶段锁定
3...
2018-09-02 03:03:38 |
SQL