新功能初探 | MySQL 8.0 Multi-Valued Indexes功能简述
顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持,并基于array来构建二级索引。这意味着该二级索引的记录数可以是多于聚集索引记录数的,因而该索引不可以用于通常意义的查询,只能通过特定的接口函数来使用,下面的例子里会说明。
顾名思义,索引上对于同一个Primary key, 可以建立多个二级索引项,实际上已经对array类型的基础功能做了支持,并基于array来构建二级索引。这意味着该二级索引的记录数可以是多于聚集索引记录数的,因而该索引不可以用于通常意义的查询,只能通过特定的接口函数来使用,下面的例子里会说明。
通过配置 MySQL 的 socket 身份认证插件,可实现本地用户无需密码直接登录数据库。这种方式适合开发测试环境,能提升便利性,同时确保本地环境安全性至关重要!你会尝试这种方法吗?
最近分析 confluence 的漏洞,发现是基于 Struts 框架的,其中有很多相关知识点并不了解,因此专门来学习一下 Struts 2。
在网上一搜 Struts 2 资料发现介绍漏洞的文章比介绍开发的还多,少数开发者的声音也是 “Struts 过时了吗?” 之类的疑问,事实上这个框架也确实是过时了,现在Java Web 开发早已是 Spring 全家桶一统江山的局面。但我们也不能不承认曾经 Struts 的地位。Struts2 + Spring + Hibernate 三大框架在当年组合号称 SSH,对 Java Web 应用生态产生了深远的影响,以至于现在有许多知名应用中还有 Struts 的影子。
因此,即便 Struts 已经日薄西山,对于 Java 安全研究者而言也是需要深入了解的目标,就像二进制研究员需要理解 “过时” 的 jmp esp 栈溢出利用方法一样。
本文整理自主题分享《美团数据库自治服务平台建设》,系超大规模数据库集群保稳系列的第四篇文章。本文作者在演讲后根据同学们的反馈,补充了很多技术细节,跟演讲(视频)相比,内容更加丰富。文章分成上、下两篇,上篇将介绍数据库的异常发现跟诊断方面的内容,下篇将介绍内核可观测性建设、全量SQL、异常处理以及索引优化建议与SQL治理方面的内容。希望能够对大家有所帮助或启发。
本文整理自主题分享《美团数据库自治服务平台建设》,系超大规模数据库集群保稳系列的第四篇文章。本文作者在演讲后根据同学们的反馈,补充了很多技术细节,跟演讲(视频)相比,内容更加丰富。文章分成上、下两篇,上篇将介绍数据库的异常发现跟诊断方面的内容,下篇将介绍内核可观测性建设、全量SQL、异常处理以及索引优化建议与SQL治理方面的内容。希望能够对大家有所帮助或启发。
在一个项目开量验证过程中,发现 createDate 字段不正确,比正确时间晚了十四个小时。调研发现,这是一个非常典型的问题。现在把定位问题的思路和解决办法给大家做个分享。
终于到这个系列的最后一篇,在前两篇博客中,我们分别了介绍了Binlog的概念和事件总线(EventBus)的实现,在完成前面这将近好几千字的铺垫以后,我们终于可以进入正题,即通过 EventBus 发布 Binlog,再通过编写对应的 EventHandler 来订阅这些 Binlog,这样就实现了我们“最初的梦想”。坦白说,这个过程实在有一点漫长,庆幸的是,它终于还是来了。
本文参考微软的 eShopOnContainers 项目,实现一个基于 RabbitMQ 的事件总线,事件总线是发布-订阅模式的一种延伸,可以在分布式的环境中令消息的发布者、订阅者完美地解耦,是领域驱动设计(DDD)中重要的基础设施之一,对于实现业务上的“事件驱动”非常有帮助。而实现 EventBus 最关键的三个方法,即 Publish()、Subscribe()和 Unsubscribe(),这其中需要了解一部分 RabbitMQ 的知识,所以,在这篇博客中,你可以了解到 RabbitMQ 的四种交换器、死信机制、重试超时机制等等。