冗余系统

MySQL数据库优化总结

≡放荡痞女 提交于 2020-01-14 03:15:10
对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数 据库设计、sql语句优化、数据库参数配置、恰当的硬件资源和操作系统,这个顺序也表现了这四个工作对性能影响的大小。下面我们逐个阐明: 一、数据库设计   适度的反范式,注意是适度的   我们都知道三范式,基于三范式建立的模型是最有效保存数 据的方式,也是最容易扩展的模式。我们在开发应用程序时,设计的数据库要最大程度的遵守三范式,特别是对于OLTP型的系统,三范式是必须遵守的规则。当 然,三范式最大的问题在于查询时通常需要join很多表,导致查询效率很低。所以有时候基于性能考虑,我们需要有意的违反三范式,适度的做冗余,以达到提 高查询效率的目的。注意这里的反范式是适度的,必须为这种做法提供充分的理由。下面就是一个糟糕的实例:      在这里,为了提高学生活动记录的检索效率,把单位名称冗余到学生活动记录表里。单位信息有500条记录,而学生活动记录在一年内大概有200万数据量。 如果学生活动记录表不冗余这个单位名称字段,只包含三个int字段和一个timestamp字段,只占用了16字节,是一个很小的表。而冗余了一个 varchar(32)的字段后则是原来的3倍,检索起来相应也多了这么多的I/O。而且记录数相差悬殊,500 VS 2000000

MySQL数据库优化总结

一曲冷凌霜 提交于 2020-01-13 12:53:02
对于一个以数据为中心的应用,数据库的好坏直接影响到程序的性能,因此数据库性能至关重要。一般来说,要保证数据库的效率,要做好以下四个方面的工作:数据库设计、sql语句优化、数据库参数配置、恰当的硬件资源和操作系统,这个顺序也表现了这四个工作对性能影响的大小。下面我们逐个阐明: 一、数据库设计   适度的反范式,注意是适度的   我们都知道三范式,基于三范式建立的模型是最有效保存数 据的方式,也是最容易扩展的模式。我们在开发应用程序时,设计的数据库要最大程度的遵守三范式,特别是对于OLTP型的系统,三范式是必须遵守的规则。当 然,三范式最大的问题在于查询时通常需要join很多表,导致查询效率很低。所以有时候基于性能考虑,我们需要有意的违反三范式,适度的做冗余,以达到提 高查询效率的目的。注意这里的反范式是适度的,必须为这种做法提供充分的理由。下面就是一个糟糕的实例:      在这里,为了提高学生活动记录的检索效率,把单位名称冗余到学生活动记录表里。单位信息有500条记录,而学生活动记录在一年内大概有200万数据量。 如果学生活动记录表不冗余这个单位名称字段,只包含三个int字段和一个timestamp字段,只占用了16字节,是一个很小的表。而冗余了一个 varchar(32)的字段后则是原来的3倍,检索起来相应也多了这么多的I/O。而且记录数相差悬殊,500 VS 2000000

计算机网络安全知识点点点通

若如初见. 提交于 2019-12-27 01:51:45
(一)网络操作系统安全 网络操作系统安全是整个网络系统安全的基础。操作系统安全机制主要包括 访问控制 和 隔离控制 。 访问控制系统一般包括主体、客体和安全访问政策 访问控制类型: 自主访问控制 强制访问控制 访问控制措施: 入网访问控制 权限访问控制 属性访问控制 身份验证 网络端口和结点的安全控制 (二)网络实体安全 计算机网络实体是网络系统的核心,既是对数据进行加工处理的中心,也是信息传输的控制中心 网络设备的冗余 网络服务器系统冗余: 双机热备份:设置两台服务器(一个主服务器,一个备份服务器) 存储备份冗余 磁盘镜像 RAID 电源冗余:采用双电源系统(即服务器电源冗余) 网卡冗余 核心交换机冗余 供电系统冗余:使用UPS作为备份电源 链接冗余 网络边界设置冗余 ACL(路由器访问控制列表) 基于包过滤的流控制技术,主要作用一方面保护网络资源,阻止非法用户对资源的访问,另一方面限制特定用户所能具备的访问权限 类型: 标准ACL:序列号1-99 扩展ACL:序列号100-199 VRRP(虚拟路由器冗余协议) 选择性协议,可把一个虚拟路由器的责任动态分配到局域网上VRRP路由器 交换机端口汇聚 端口聚合也称以太通道,主要用于交换机之间的连接。就是将多个物理端口合并成一个逻辑端口 Internet上的应用服务器 HDCP服务器 Web服务器 FTP服务器 DNS服务器

分布式学习最佳实践:从分布式系统的特征开始(附思维导图)

北战南征 提交于 2019-12-22 04:47:58
    我的探索历程    这一部分,与分布式不大相关,记录的是我是如何在分布式学习这条道路上摸索的,不感兴趣的读者请直接跳到下一章 。     过去的一年,我在分布式 学习 这条道路上苦苦徘徊,始终没有找到一个好的学习方法,一个能激励我持续学习的方法。   当然,我也在不停的反思,最先发现的问题是学习不系统,东看看,西看看,看过就忘。于是写了一篇文章《 带着问题学习分布式系统 》提出了一些问题,然后写了两篇文章来回带自己提出的问题。回过头看,其实这两篇文章都是基于分布式存储的。   然后接下来,又是一段时间的迷茫,不知道要学习啥(也是在学习Paxos的时候遇到了阻碍),偶然看到了关于SMART的一些文章,发现原来自己的学习一点都不SAMRT,所以坚持不下去。于是又写了一篇文章《 带着SMART原则重新出发 》,希望给自己设定SMART的目标,结果被博友打脸“一点都不smart”,而且也被结果打脸了,确实没有让我“重新出发”。   我也曾经在网上搜索,“如何学习分布式系统“,但并没有找到理想的、或者说适合我的学习方法。网上的答案,都是说,看这些论文,看这些系统的实现。。。或者很多大学的课程,都是罗列出一堆术语:概念、协议、组件。而我觉得,逐个去了解这些术语似乎很无聊,因为不知道为什么要这个协议,或者说这些协议、组件是如何组合起来的。   在没有得到适合自己的方案之后,我自己思考

RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】

怎甘沉沦 提交于 2019-12-16 14:09:34
图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100……   RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。 一、RAID 概述   1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 [1] ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of

4-MySQL DBA笔记-开发进阶

末鹿安然 提交于 2019-12-13 18:10:31
第4章 开发进阶 本章将介绍一些重中之重的数据库开发知识。 在数据库表设计中,范式设计是非常重要的基础理论,因此本章把它放在最前面进行讲解,而这其中又会涉及另一个重要的概念——反范式设计。 接下来会讲述MySQL的权限机制及如何固化安全。 然后介绍慢查询日志及性能管理的部分理念,并讲述数据库的逻辑设计、物理设计、导入导出数据、事务、锁等知识。 最后会提及 MySQL的一些非核心特性,并对于这些特性的使用给出一些建议。 4.1 范式和反范式 4.1.1 范式 什么是范式? 范式是数据库规范化的一个手段,是数据库设计中的一系列原理和技术,用于减少数据库中的数据冗余,并增进数据的一致性。 数据规范化通常是将大表分成较小的表,并且定义它们之间的关系。这样做的目的是为了避免冗余存放数据,并确保数据的一致性。 添加、删除和修改数据等操作可能需要修改多个表,但只需要修改一个地方即可保证所有表中相关数据的一致性(由于数据没有冗余存放,修改某部分数据一般只需要修改一个表即可)。 由于数据分布在多个表之间,因此检索信息可能需要根据表之间的关系联合查询多个表。 数据规范化的实质是简单写、复杂读。 写入操作比较简单,对于不同的信息,分别修改不同的表即可;而读取数据则相对复杂,检索数据的时候,可能需要编写复杂的SQL来联合查询多个表。 常用的范式有第一、第二、第三范式,通常来说

F5双机冗余配置

孤人 提交于 2019-12-09 17:15:07
转自: https://blog.51cto.com/dynamic/769888 本文作者: CTO_LiuJinFeng 1. 配置管理接口-IP 前面文章中没提到如何配置IP,现在开始来配置。 登录-F5 选择-System-展开: 选择-Platform 默认-Automatic(DHCP),参照我们前期规划,选择-Manual,设置-IP: 填写.红框中的东西。 选择-Update 登录-F5 Log in Hostname :F5-BIGIP-10-1-1.uc-cn.net IP Address:192.168.1.245 计算机名和管理IP配置完毕。 同理: 配置- F5-BIGIP-10-1-2 Hostname :F5-BIGIP-10-1-2.uc-cn.net IP Address:192.168.0.245 Update 登录-F5 2. 登录-管理界面 3. 激活-License 参照: F5 配置手册 -F5 BIG-IP 10.1-1-激活 http://dynamic.blog.51cto.com/711418/769081 4. 配置-系统-属性 选择-System-Platform- Configuration 参照: 参数名 如何理解…… 如何设置…… Host Name 主机名,用来标识F5系统自身。 说明

RAID(独立磁盘冗余阵列)

拈花ヽ惹草 提交于 2019-12-05 09:05:53
Raid ​ RAID 独立磁盘冗余阵列,在本科学习时候学习过,记不清是组成原理还是操作系统,当时理解的不太清楚,现在研究生期间做存储相关项目,涉及到了Raid,于是查各种博客,为了以后便于后期查阅,写下这篇博客。 1. Raid的背景 ​ 在单机时代,采用单块磁盘进行数据存储和读写的方式,由于寻址和读写的时间消耗,导致I/O性能非常低,且存储容量还会受到限制。另外,单块磁盘极其容易出现物理故障,经常导致数据的丢失。因此大家就在想,有没有一种办法将多块独立的磁盘结合在一起组成一个技术方案,来提高数据的可靠性和I/O性能呢。 ​ 在这种情况下,RAID技术就应运而生了。 2. Raid是什么 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,简称为「磁盘阵列」,其实就是用多个独立的磁盘组成在一起形成一个大的磁盘系统,从而实现比单块磁盘更好的存储性能和更高的可靠性。 3. Raid有哪些 RAID方案常见的可以分为: RAID0 RAID1 RAID5 RAID6 RAID10 3.1 RAID0 RAID0 是一种非常简单的的方式,它将多块磁盘组合在一起形成一个大容量的存储。当我们要写数据的时候,会将数据分为N份,以独立的方式实现N块磁盘的读写,那么这N份数据会同时并发的写到磁盘中,因此执行性能非常的高。 RAID0

生成树协议

拥有回忆 提交于 2019-12-04 21:22:17
由于网络中会存在单点故障而导致网络无法访问,系统瘫痪,因此在网络中提供冗余链路即引入备份链路来解决单点故障问题,可以减少单点故障,增加网络可靠性;缺点是:产生交换环路,会导致广播风暴、多帧复制、MAC地址表抖动。因此生成树协议是为了提供冗余链路,解决环路问题(作用)。 来源: https://www.cnblogs.com/fn07216/p/11884668.html

gluster使用――9种创建方法

匿名 (未验证) 提交于 2019-12-03 00:39:02
gluster学习: gluster把多个brick组成一个volume。根据所要组成的volume的存储方式不同,可以分为几种不同的组成方式: 1.Distributed: 分布式的,一个文件随机存储在一个的brick上,文件不能拆分。此时volume的容量是所有brick的和,没有冗余盘。默认是分布式的。 创建一个Distributed: gluster volume create new 192.168.1.152:/mnt/f1/s1 192.168.152:/mnt/f2/a2 2.Replicated: 1:1备份式,一个文件会同时存储在两个brick上,一个是存储一个是备份。所以此时volume得到的容量应该是所有brick容量和的1/2。 #创建一个镜像式的volume 3.Striped: 条带式,把一个文件按照一定的算法分开存储在好几个brick上。比如:对于一个文件,奇数行存储在第一个brick上,偶数行存储在第二个brick。(仅在高并发环境中访问非常大的文件时才使用) #条带式创建,失败。提示:Wrong brick type: 2, use <HOSTNAME>:<export-dir-abs-path> 此处没有写名字,需要在create后面加上名字。 4.Distributed Striped: 分布条带式,一个文件先按照分布式的方式