loannes's blog

分类 · 数据库

首页

关于

归档

loading..
Redis

浅谈Redis的持久化:RDB与AOF

Redis数据持久化 Redis可不单单是一个缓存型数据库,如果出现Redis服务出现问题导致关闭或者人为的操作导致停止运行,那么所有的数据都将丢失。 为此Redis推出了数据持久化的方案,Redis推出了两种方案:RDB与AOF RDB快照 什么是RDB快照,RDB快照有点类似于传统数据库的db文件。指的是将Redis中的数据以二进制格式存储在RDB文件中,因为是在磁盘上进行的操作,所以每次写入数据都是IO操作。为了减少磁盘的负担,Redis支持修改RDB文件的写入时间间隔: save <seconds> <changes>表示在seconds秒内,至少有changes次变化,就会自动触发bgsave命令 save 900 1 当时间到900秒时,如果至少有1个key发生变化..

更多
loading..
sqlitecBTree

自己动手实现简易版sqlite(一).md

前言 在动手学习这块知识之前本身是抱着想了解数据库是如何实现的目的,但越往后越觉得数据库这个项目真的是复杂,但是也十分有趣。所以特地在此记录下我这些天来对sqlite的理解。 本篇文章是以简易版的sqlite(后面简称sqlite)为基础写出来的原理剖析,还有很多sqlite的基本功能还未涉及到,之后我会逐步添加上去。 框架结构 本项目用c语言实现 测试工具为rspec 本sqlite的基本架构分为: 核心层 接口 SQL命令处理程序 分词器(Tokenizer) 分析器(Parser) 代码生成器(Code Generator) 虚拟机(后台) B树 (B-Tree) 页面调度程序(Pager) 操作系统接口 (OS Interface) 其他辅助类 一般我们把接口和SQL命..

更多
loading..
MySQLMySQL锁,InnoDB

浅谈MySQL中的锁

前言 之前学习了MySQL的事务管理MySQL管理事务处理 在数据库处理高并发的时候需要涉及到事务管理和锁的机制问题这两块知识。对于锁的处理一直是一个老生常谈的话题,内容太过复杂。这次借助这篇文章分享下我对Innodb中的锁的机制的理解。 快照读与当前读 在了解锁的机制前我们得先了解快照读与当前读的区别。 一般我们常用的select * from ...也是读,共享锁那也是读,它们之间有什么区别呢?其实MySQL中的读与事务隔离级别中的读是不同的读。 在 MVCC 并发控制中,读操作可以分成两类:快照读 (snapshot read)与当前读 (current read)。 快照读,读取的是记录的可见版本 (有可能是历史版本),不用加锁。当前读,读取的是记录的最新版本,并且,当前读返回的记录,都会加上锁,..

更多
loading..
MySQL

【MySQL】浅谈MySQL的LOAD DATA

前言 好久没碰MySQL了,这次碰巧在研究superset的时候需要将一份csv格式的数据文件导入到数据库中。正好借此机会可以重温下MySQL。 数据来源 网盘密码 : g5xa 开发环境 Mac OS 10.13 MySQL 8.0 准备工作 在开始之前需要对源数据做一次清洗: 去除”,“等影响数据导入的符号 去除第一行索引值,因为它不是数据 如果需要咋数据库中加上id,那么为了对应在源数据中也要加上,excel中加上id还是很方便的。 把数据转为utf-8格式的csv文件 在这之前先简单阅读下官方文档:MySQL Documentation 可以很方便的找到LOAD DATA的表达式: LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] ..

更多