数据库
文章平均质量分 94
小飞飞的技术笔记
生命不息,学习不止
展开
-
基于MyBatis插件开发SQL日志记录功能
在新项目中有个需求,需要记录下增删改的SQL并落表。一般考虑到的是需要利用Spring的AOP,抽取日志记录的功能,在持久层操作的时候进行统一增强。项目用到的持久层框架是MyBatis,那么直接想到的就是利用MyBatis的插件机制对执行的SQL进行记录。那么具体如何实现呢?原理又是什么?读了这篇文章的小伙伴就可以搞清楚啦。一、MyBatis插件介绍MyBatis大家都比较熟悉,实际使用也非常广泛,其内部提供了插件扩展机制来拦截SQL的执行。其执行原理如下图所示:SQL执行...原创 2021-09-17 17:33:41 · 906 阅读 · 0 评论 -
MongoDB和MySQL底层索引实现原理分析及比较
一、索引类型创建索引是为了提高数据的检索速度。这里只针对类似的索引类型做一个比较,并不包含所有的索引类型。MongoDB MySQL 单键索引:单个字段建立索引。(过期索引TTL,必须是日期类型,类似Redis中的过期key) db.集合名.createIndex({"字段名":排序方式}) 普通索引:普通字段建立索引,没有任何约束。 CREATE INDEX ON tablename (字段名); 复合索引:基于多个字段的索引 db.集合名.create...原创 2021-06-15 15:02:41 · 1365 阅读 · 2 评论 -
MySQL多维度性能优化
一、四个优化维度既然谈到优化,一定想到要从多个纬度进行优化,作为一个合格的程序员或者DBA,问题一定要多方位进行考虑。这里总结了四个维度,当然SQL语句相关的优化手段一定是最为重要的。这里的优化维度有四个:SQL语句及索引、表结构设计、系统配置、硬件配置。二、硬件配置硬件方面的优化可以对磁盘进行扩容、将机械硬盘换为SSD。这个优化手段成本最高,带来的成本却是最高的。这个不再作过多的赘述。三、系统配置3.1 系统选择系统通常使用Linux作为服务端的系统,本地开发的话可以随..原创 2021-06-02 09:15:25 · 375 阅读 · 0 评论