数据库文件

Redis持久化(三)

限于喜欢 提交于 2019-12-06 10:00:58
Redis持久化 Redis提供了哪些持久化机制 1. RDB持久化: 该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘。 2. AOF持久化: 该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的。 3. 无持久化: 我们可以通过配置的方式禁用Redis服务器的持久化功能,这样我们就可以将Redis视为一个功能加强版的memcached了。 4. 一般情况下,项目中是同时应用AOF和RDB。 RDB机制的优势和劣势 Redis DataBase RDB存在哪些优势呢? 1. 一旦采用该方式,那么你的整个Redis数据库将只包含一个文件,这对于文件备份而言是非常完美的。比如,你可能打算每个小时归档一次最近24小时的数据,同时还要每天归档一次最近30天的数据。通过这样的备份策略,一旦系统出现灾难性故障,我们可以非常容易的进行恢复。 2. 对于灾难恢复而言,RDB是非常不错的选择。因为我们可以非常轻松的将一个单独的文件压缩后再转移到其它存储介质上。 3. 性能最大化。对于Redis的服务进程而言,在开始持久化时,它唯一需要做的只是fork出子进程,之后再由子进程完成这些持久化的工作,这样就可以极大的避免服务进程执行IO操作了。 4. 相比于AOF机制,如果数据集很大,RDB的启动效率会更高

数据库优化策略之分区、分表、表分区

 ̄綄美尐妖づ 提交于 2019-12-06 09:54:18
分库、分表、表分区 来源场景:读写分离以后可分为一个主库 ( 主库负责写 ) 加上 N 多个从库 ( 从库负责读 ) , 但是因为业务量的扩大,主库还是无法承受写入的压力,那么此时就可以考虑分库、分表、表分区 来进一步优化 分库: 场景 1 :比如一个系统涵盖了订单 \ 物流 \ 仓储 ..... 等等 垂直分库,按业务拆分库,不同库不同的服务器 场景 2:订单增删改特别大 水平分库,每个库结构一致数据不一致 (地域/时间/类别/随机算法) 分表 场景 1 : 文章表, 10个常规字段+1个很长的内容字段 垂直分表,减小表体积,提升增删改查的效率 场景 2: 单表数据量太大 (订单表/商品表) 水平分表 (地域/时间/类别/随机算法) 表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里。 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个 cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。 所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高 select效率,还可以对历史数据经行区分存档等。但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的开销,除啦性能还会增加实现对象的管理费用和复杂性。

springboot 论坛项目

假如想象 提交于 2019-12-06 09:42:17
项目演示地址:http://www.mawen.co/ 快速搭建sprintboot项目 运行第一个springboot项目 leaf package hello; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @Controller public class GreetingController { @GetMapping("/greeting") //其中第一个name为key,第二个String name是用来接收值的 public String greeting(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) { model.addAttribute("name", name); return "greeting";//返回template目录查找页面 } } 一个错误是:

redis安装和配置(一)

こ雲淡風輕ζ 提交于 2019-12-06 08:08:04
Redis 的官方下载站是http://redis.io/download 怎么安装 Redis 数据库呢?下面将介绍Linux 版本的安装方法 步骤一: 下载Redis 下载安装包:wget http://redis.googlecode.com/files/redis-2.2.12.tar.gz [root@localhost 4setup]# wget http://redis.googlecode.com/files/redis-2.2.12.tar.gz --19:06:56-- http://redis.googlecode.com/files/redis-2.2.12.tar.gz 正在解析主机 redis.googlecode.com... 74.125.71.82 Connecting to redis.googlecode.com|74.125.71.82|:80... 已连接。 已发出 HTTP 请求,正在等待回应... 200 OK 长度:455240 (445K) [application/x-gzip] Saving to: `redis-2.2.12.tar.gz' 100%[==========================================>] 455,240 34.8K/s in 13s 19:07:16 (34.8 KB/s)

57 Django模型层3与数据传输与Ajax

混江龙づ霸主 提交于 2019-12-06 07:04:49
目录 一、orm查询优化 1.only与defer 2.select_related与prefatch_related 二、模型层choices参数 三、MTV与MVC模型 1.MVC 2.MTV 3.区别 四、Ajax简介 五、前后端传输数据编码格式 1. 不同的编码格式 2. 前端朝后端发送数据的请求方式 2.1 form表单发送数据编码格式 2.2 ajax发送数据的编码格式 六、序列化(drf会用到) 一、orm查询优化 能少走数据库就少走数据库。 1.only与defer only :取对象,对象中只包含主键和only括号里的属性。 only括号内放字段,查询结果是一个列表套一个个的数据对象。 这些数据对象通过点的方式取括号内的字段属性不会再查询数据库,直接就是对象获取属性。只需要查一次数据库就可以全取出。 不过only也可以点击括号内没有的字段,但是每点击一次就会重新走一次数据库查询,效率极低。 res = models.Book.objects.only('title') for i in res: print(i.title) # 走一次 for i in res: print(i.price) # 走11次,有几个对象走几次 defer :与only相反,排除括号内的字段。 defer与only是互为反操作。 defer括号内放什么字段

ETL介绍与ETL工具比较

隐身守侯 提交于 2019-12-06 06:56:03
本文转载自:http://blog.csdn.net/u013412535/article/details/43462537 ETL ,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过萃取(extract)、转置(transform)、加载(load)至目的端的过程。 ETL 一词较常用在 数据仓库 ,但其对象并不限于 数据仓库 。 ETL负责将分布的、异构数据源中的数据如关系数据、 平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。 ETL是数据仓库中的非常重要的一环。它是承前启后的必要的一步。相对于关系数据库,数据仓库技术没有严格的数学理论基础,它更面向实际工程应用。所以从工程应用的角度来考虑,按着物理数据模型的要求加载数据并对数据进行一些系列处理,处理过程与经验直接相关,同时这部分的工作直接关系数据仓库中数据的质量,从而影响到联机分析处理和数据挖掘的结果的质量。 数据仓库是一个独立的数据环境,需要通过抽取过程将数据从联机事务处理环境、外部数据源和脱机的数据存储介质导入到数据仓库中;在技术上,ETL主要涉及到关联、转换、增量、调度和监控等几个方面;数据仓库系统中数据不要求与联机事务处理系统中数据实时同步,所以ETL可以定时进行。但多个ETL的操作时间

数据库之数据库的创建删除属性修改语句大全

做~自己de王妃 提交于 2019-12-06 06:41:01
--创建数据库使用默认的方式 create database 数据库名称 --创建一个完整的数据库,带有主文件和日志文件 create database 数据库名称 --逻辑名称 on primary( name='数据库名称', --物理名称 filename='d:\名字.mdf', size=10mb, maxsize=unlimited, filegrowth=10%) --若有多个文件在)后面添加 , log on( name='test_log', filename='d:\名字.ldf', size=1mb, maxsize=5mb, filegrowth=1mb) go --修改数据库 --添加一个文件组 alter database test add filegroup 文件组名称 --向文件组里添加文件 alter database test add file (name='test_data2', filename='d:\170508010430董志洋\test_data2.ndf', size=5mb, maxsize=100mb, filegrowth=5mb), (name='text_data3', filename='d:\170508010430董志洋\text_data3.ndf', size=5mb, maxsize=100mb,

MySql数据库备份的几种方式

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-06 05:50:45
mysqldump工具备份 备份整个数据库 $> mysqldump -u root -h host -p dbname > backdb.sql 备份数据库中的某个表 $> mysqldump -u root -h host -p dbname tbname1, tbname2 > backdb.sql 备份多个数据库 $> mysqldump -u root -h host -p --databases dbname1, dbname2 > backdb.sql 备份系统中所有数据库 $> mysqldump -u root -h host -p --all-databases > backdb.sql 直接复制整个数据库目录(对于InnoDB存储引擎不适用)备份 windowns: installpath/mysql/data linux: /var/lib/mysql 在复制前需要先执行如下命令: MYSQL> LOCK TABLES; # 在复制过程中允许客户继续查询表, MYSQL> FLUSH TABLES; # 将激活的索引页写入硬盘。 mysqlhotcopy工具备份 备份数据库或表最快的途径,只能运行在数据库目录所在的机器上,并且只能备份MyISAM类型的表。 要使用该备份方法必须可以访问备份的表文件。 $> mysqlhotcopy -u root -p

基于xtrabackup实现mysql备份还原

人走茶凉 提交于 2019-12-06 05:39:56
简介 Xtrabackup2.2版之前包括4个可执行文件: innobackupex: Perl 脚本 xtrabackup: C/C++ 编译的二进制 xbstream: 支持并发写的流文件格式 xbcrypt: 加解密 xtrabackup 是用来备份 InnoDB 表的,不能备份非 InnoDB 表,和 MySQLServer 没有交互;innobackupex 脚本用来备份非 InnoDB 表,同时会调用xtrabackup 命令来备份 InnoDB 表,还会和 MySQL Server 发送命令进行交互,如加全局读锁(FTWRL)、获取位点(SHOW SLAVE STATUS)等。即innobackupex是在xtrabackup 之上做了一层封装实现的;mysqldump默认是不支持增量备份的(mysqldump实现增量备份靠的是二进制日志),xtrabackup支持增量备份 xtrabackup下载地址 https://www.percona.com/downloads/Percona-XtraBackup-2.4/ https://www.percona.com/downloads/Percona-XtraBackup-LATEST/          #最新版本下载 xtrabackup备份过程 棕色线条是备份MyISAM存储引擎的表

Oracle 数据库启动与关闭

风格不统一 提交于 2019-12-06 02:43:52
只有具备sysdba和sysoper 系统 特权的用户才能启动和关闭 数据库 。 在启动数据库之前应该启动监听程序,否则就不能利用命令方式来管理数据库,包括启动和关闭数据库。 虽然数据库正常运行,但如果没有启动监听程序,客户端就不能连接到数据库。 在oracle用户下: 启动监听程序 lsnrctl start 关闭监听程序lsnrctl stop 查询监听程序状态lsnrctl status startup 支持参数 STARTUP options | upgrade_options options为:[FORCE] [RESTRICT] [PFILE=filename] [QUIET] [ MOUNT [dbname] | [ OPEN [open_options] [dbname] ] | NOMOUNT ], NOMOUNT、MOUNT、OPEN为startup的三个阶段,不能在命令中同时存在。其中,open_options为:READ {ONLY | WRITE [RECOVER]} | RECOVER。 upgrade_options为:[PFILE=filename] {UPGRADE | DOWNGRADE} [QUIET] Oracle 数据库 的完整启动过程包含以下3个步骤: 简单地说,就是: 启动实例 --> 加载数据库 --> 打开数据库 . -------