php特级课---2、网站大数据如何存储

一、总结

一句话总结:

mysql主从,分库分表,mysql分区,mysql集群,Nosql

1、mysql主从服务器各自的功能是什么?

增删改,主服务器
查询,备份,从服务器

2、mysql能够负担得起几亿用户的访问么?

可以的,优化做好就好,比如淘宝,主从服务器,分库分表,数据库的负载均衡

3、mysql分库分表是怎么弄?

垂直分表,大表分成小表,每个小表几个字段或者几十个字段
水平分表,行数太多了,可以分成多个表

4、mysql数据库过度分库分表的缺点是什么,怎么解决?

维护成本太大
解决:mysql分区技术

5、mysql分区技术是什么?

名字是一样的,物理存储地址是一样的:其实相当于mysql给我们的分库分表做了维护

名字是一样的,物理存储地址是一样的

其实相当于mysql给我们的分库分表做了维护

水平分区技术将一个表拆成多个表,比较常用的方式
是将表中的记录按照某种Hash算法进行拆分,简单的
拆分方法如取模方式。同样,这种分区方法也必须对
前端的应用程序中的SQL进行修改方可使用。而且对
于一个SQL,它可能会修改两个表,那么你必须得写
成2个SQL语句从而可以完成一个逻辑的事务,使得程
序的判断逻辑越来越复杂,这样也会导致程序的维护
代价高,也就失去了采用数据库的优势。因此,分区
技术可以有力地避免如上的弊端,成为解决海量数据
存储的有力方法

6、mysql集群的作用是什么?

冗余备份

7、Nosql-Mongodb里面存储的数据的形式是怎样的?

是类似json的bjson格式

是类似json的bjson格式,

MongoDB是一个基于分布式文件存储的数据库。由
C++语言编写。旨在为WEB应用提供可扩展的高性能数
据存储解决方案。
  MongoDB是一个介于关系数据库和非关系数据库
之间的产品,是非关系数据库当中功能最丰富,最像关
系数据库的。他支持的数据结构非常松散,是类似json
的bjson格式,因此可以存储比较复杂的数据类型。
Mongo最大的特点是他支持的查询语言非常强大,其语
法有点类似于面向对象的查询语言,几乎可以实现类似
关系数据库单表查询的绝大部分功能,而且还支持对数
据建立索引

二、MySQL主从复制技术的简单实现

配置环境:

主从服务器操作系统均为 ubuntu15.10

主从服务器MySQL版本均为 MySQL5.6.31

主服务器IP:192.168.0.178

从服务器IP:192.168.0.145

主从服务器之间都是相互能ping通的。

主服务器配置:

1、启用二进制日志,设置服务器唯一ID;

2、修改 /etc/mysql/my.cnf  “bind-address = 0.0.0.0;” 使得MySQL允许远程连接;

3、进入终端,为用户backend赋予 REPLICATION SLAVE 权限,然后执行 “FLUSH PRIVILEGES;” 刷新权限;(我这里已经有该用户,没有的应该先创建一个用户并赋予 REPLICATION SLAVE 权限)该用户用于从服务器连接主服务器数据库。

4、重启MySQL并进入MySQL终端,执行 “show master status;” 查看mater的状态;

5、记录File 和 Position的值,因为配置从服务器时要用到。此时不要再动主数据库了,以免影响了Position的值。

从服务器配置:

1、像主服务一样配置启用二进制日志,设置服务器唯一ID;(主服务器的server-id=1,从服务器这里的server-id=2)

2、重启MySQL并进入MySQL终端;

3、执行以下语句并启动 slave 从库:

说明:这里的master_host是设置主服务器的IP,master_user是设置连接主服务器数据库的用户,master_password是该用户的密码,master_log_file和master_log_pos设置主服务器时记录下的文件和值;

4、执行 "show slave status;\G" 查看slave从库状态:

此时若Slave_IO_Running和Slave_SQL_Running都为Yes,那么说明主从配置成功了。

5、到 主数据库创建一个数据库 "create database test_master_slave;"

6、到从服务器执行 “show databases;” 发现也同时创建了数据库 test_master_slave;

注意:主从服务器和数据库版本可以不一样,但主从服务器中当前的数据库最好一致,不然后面可能会因数据库不一致而导致出现一些错误。如果出现错误,比如在主服务器删除了一个数据库,而从服务器上并没有这个数据库,那么从服务器的复制就会出错,此时应该先执行"stop slave"停止从库,然后执行“SET  GLOBAL  SQL_SLAVE_SKIP_COUNTER = 1;” 跳过一个事务,从而跳过那个错误。再执行“start slave”开启从库。从库便正常复制主库的操作。(SET  GLOBAL  SQL_SLAVE_SKIP_COUNTER = n;表示跳过n个让从库复制出错的事务)

 

参考:MySQL主从复制技术的简单实现 - LO-gin - 博客园
https://www.cnblogs.com/LO-gin/p/6121519.html

 

php特级课---2、网站大数据如何存储的更多相关文章

  1. php特级课---5、网络数据转发原理

    php特级课---5.网络数据转发原理 一.总结 一句话总结: OSI七层模型 路由器 交换机 ARP 代理ARP 1.OSI7层模型? 电缆 MAC地址 ip 端口 应用 1层 通信电缆 2层 原M ...

  2. MySQL数据库如何解决大数据量存储问题

    利用MySQL数据库如何解决大数据量存储问题? 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开 ...

  3. PHP解决网站大数据大流量与高并发

    1:硬件方面 普通的一个p4的服务器每天最多能支持10万左右的IP,如果访问量超过10W那么需要专用的服务器才能解决,如果硬件不给力软件怎么优化都是于事无补的.主要影响服务器的速度 有:网络-硬盘读写 ...

  4. 利用MySQL数据库如何解决大数据量存储问题?

    提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下:1.数据的容量:1-3年内会大概多少条数据,每条 ...

  5. MySQL数据库解决大数据量存储问题

    转载自:https://www.cnblogs.com/ryanzheng/p/8334915.html 提问:如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如 ...

  6. 为什么MongoDB适合大数据的存储?

    NoSQL数据库都被贴上不同用途的标签,如MongoDB和CouchDB都是面向文档的数据库,但这并不意味着它们可以象JSON(JavaScript Object Notation,JavaScrip ...

  7. PHP 网站大数据大流量与高并发 笔记

    前端: 1.域名开启cdn 2.大文件使用oss php: 1.模板编译缓存 服务器: 1.负载均衡 数据库: 1.读写分离 待完善

  8. 【数据处理】SQL Server高效大数据量存储方案SqlBulkCopy

    要求将Excel数据,大批量的导入到数据库中,尽量少的访问数据库,高性能的对数据库进行存储. 一个比较好的解决方案,就是采用SqlBulkCopy来处理存储数据. SqlBulkCopy存储大批量的数 ...

  9. 大数据的存储——HBase、HIVE、MYSQL数据库学习笔记

    HBase 1.hbase为查询而生,它通过组织机器的内存,提供一个超大的内存hash表,它需要组织自己的数据结构,表在hbase中是物理表,而不是逻辑表,搜索引擎用它来存储索引,以满足实时查询的需求 ...

随机推荐

  1. ipv4 ipv6 在系统可扩展性方面的应用 支撑公司10-100年的AmazonOrderId

    w 如同 基因 生态系统 理念 思维 算法

  2. <2013 07 29> 游泳

    7月12日,在巴塞罗那的海滩学会用狗刨式游泳. 7月14日,在尼斯-戛纳海滩继续练习,稍式蛙泳仰泳. 7月28日,在慕尼黑某湖边吃烧烤,下湖练习. 7月29日,在慕尼黑奥林匹克游泳馆学会了仰泳,稍试自 ...

  3. 全局enter回车键js

    js实现敲回车键触发事件 document.onkeydown = function(e){ var ev = document.all ? window.event : e; ){ alert(&q ...

  4. lodash的使用

    Lodash是一个一致性.模块化.高性能的 JavaScript 实用工具库,内部封装了很多字符串.数组.对象等常见数据类型的处理函数. 为什么选择 Lodash ? Lodash 通过降低 arra ...

  5. [NOIP2018TG]旅行

    [NOIP2018TG]旅行 树很简单,对每个点sort儿子,贪心走就行了 基环树呢? 如果是1e5可能不太好做 但是5000的话枚举断边就可以\(n^2\)了 #include<bits/st ...

  6. LeetCode-day01&02

    感觉还好,坚持住就行,毕竟智商不够 1. Length of Last Word求一个数组的最后一个单词的长度 2. Plus One   大数加1 3.  Add Binary 二进制加法 4. S ...

  7. mysql数据库中表的外键约束

    一.外键约束 1.什么是外键? 外键指的是其他表中的主键,当做该表的外键. 2.创建外键. 2.1 可在创建表的时候直接创建外键,如图所示: create table table_name  (字段名 ...

  8. python数据之间的转换和关系

    首先数据类型在我看来分为两类: 容器类:能存储数据,例如:元祖.列表.集合.字符串. 原子类:单纯保存数值,例如:整数.浮点数.复数. 容器类与容器类之间,一般都可以进行两两之间的转化. 原子类与原子 ...

  9. android开发之网络棋牌类在线游戏开发心得(服务器端、Java) 好文章值得收藏

    标签: android服务器 2013-10-09 17:28 3618人阅读 评论(0) 收藏 举报 分类: android(11) 转自:http://blog.csdn.net/bromon/a ...

  10. iOS 52个技巧学习心得笔记 第一章 熟悉OC

    1 .简单了解OC2 .在类的头文件中尽量少引入其他头文件3 .多用字面量语法 少用与之等价的方法 4 .多用类型常量 少用 #define 预处理指令5 .用枚举表示状态,选项,状态码 .简单了解O ...