数据存储

Mybatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!

发布于 2020-10-03

前言 SQL注入漏洞作为WEB安全的最常见的漏洞之一,在java中随着预编译与各种ORM框架的使用,注入问题也越来越少。 新手代码审计者往往对Java Web应用的多个框架组合而心生畏惧,不知如何下手,希望通过Mybatis框架使用不当导致的SQL注入问题为例,能够抛砖引玉给新手...

阅读(131)评论(0)赞 (1)

为什么耗时 7 天 7 夜才找回删库数据?

发布于 2020-10-03

  “七天七夜,微盟被删除的数据全面找回!” 3月1日晚间,微盟发布公告,称在合作方腾讯云的协助下,数据已经全面找回,预计于2020年3月3日上午9点完成数据恢复上线。 腾讯云官方微博也发布消息,表示数据恢复的复杂度超出所有人想象,“连续通宵、排除万难,终于攻坚成功!” 不过,数...

阅读(123)评论(0)赞 (0)

一文把Redis主从复制、哨兵、Cluster三种模式摸透

发布于 2020-10-02

概述 Redis作为缓存的高效中间件,在我们日常的开发中被频繁的使用,今天就来说一说Redis的四种模式,分别是「单机版、主从复制、哨兵、以及集群模式」。 可能,在一般公司的程序员使用单机版基本都能解决问题,在Redis的官网给出的数据是10W QPS,这对于应付一般的公司绰绰有...

阅读(150)评论(0)赞 (0)

一份非常完整的 MySQL 规范

发布于 2020-09-29

一、数据库命名规范   所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀...

阅读(186)评论(0)赞 (0)

为什么 MySQL 使用 B+ 树

发布于 2020-09-28

为什么 MySQL 使用 B+ 树是面试中经常会出现的问题,很多人对于这个问题可能都有一些自己的理解,但是多数的回答都不够完整和准确,大多数人都只会简单说一下 B+ 树和 B 树的区别,但是都没有真正回答 MySQL 为什么选择使用 B+ 树这个问题,我们在这篇文章中就会深入分析...

阅读(166)评论(0)赞 (0)

记一次神奇的 SQL 查询经历,group by 慢查询优化

发布于 2020-09-20

一、问题背景   现网出现慢查询,在500万数量级的情况下,单表查询速度在30多秒,需要对sql进行优化,sql如下: 我在测试环境构造了500万条数据,模拟了这个慢查询。 简单来说,就是查询一定条件下,都有哪些用户的。很简单的sql,可以看到,查询耗时为37秒。 说一下app_...

阅读(174)评论(0)赞 (0)

MySQL 自增 id 超大问题查询

发布于 2020-09-20

引言   小A正在balabala写代码呢,DBA小B突然发来了一条消息,“快看看你的用户特定信息表T,里面的主键,也就是自增id,都到16亿了,这才多久,在这样下去过不了多久主键就要超出范围了,插入就会失败,balabala……” 我记得没有这么多,最多...

阅读(137)评论(0)赞 (0)

MySQL 全文索引实现简单版搜索引擎

发布于 2020-09-19

前言 只有Innodb和myisam存储引擎能用全文索引(innodb支持全文索引是从mysql5.6开始的) char、varchar、text类型字段能创建全文索引(fulltext index type) 全文索引的基于关键词的,如何区分不同的关键词了,就要用到分词(sto...

阅读(151)评论(0)赞 (0)

使用基于 Redis 的 Java 布隆过滤器

发布于 2020-09-17

布隆过滤器是一种概率数据结构,用来高效地测试集合中是否存在某个元素。使用布隆过滤器有助于减少在磁盘中查找键值的次数,从而降低开销。 在Java开发中,可以使用各种现成的布隆过滤器,包括Google出品的Guava BloomFilter类。 Redis是一款开源内存数据结构存储,...

阅读(315)评论(0)赞 (1)