mysql集群

MySQL学习笔记七:存储引擎

╄→尐↘猪︶ㄣ 提交于 2019-11-28 13:24:26
1.MySQL存储引擎的设计采用“插件式”方案,用户可以很方便地选择使用哪种存储引擎,想使用mysql没有提供的引擎时,可以自己安装进去。 查看支持的存储引擎 mysql> show engines\G *************************** 1. row *************************** Engine: FEDERATED Support: NO Comment: Federated MySQL storage engine Transactions: NULL XA: NULL Savepoints: NULL *************************** 2. row *************************** Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO *************************** 3. row *************************** Engine: MyISAM Support: YES Comment: MyISAM storage engine Transactions: NO

Pinterest谈实战经验:如何在两年内实现零到数百亿的月访问

若如初见. 提交于 2019-11-28 11:50:24
Pinterest一直保持着指数增长,每一个半月都会翻一翻。在两年内,他们实现了从0到数百亿的月PV;从开始的两个创始人加一个工程师增长到现在超过40个工程师,从一个小型的MySQL服务器增长到180个Web Enigne、240个API Enigne、88个MySQL DB(cc2.8xlarge,每个DB都会配置一个从属节点)、110个Redis Instance以及200个Mmecache Instance。 在一个名为 《Scaling Pinterest》 的主题演讲上,Pinterest的 Yashwanth Nelapati 和 Marty Weiner 为我们讲述了这个戏剧性的过程。当然扩展到当下规模,Pinterest在众多选择中不可避免的走了许多的弯路,而Todd Hoff认为其中最宝贵的经验该归结于以下两点: 如果你的架构应对增长所带来的问题时,只需要简单的投入更多的主机,那么你的架构含金量十足。 当你把事物用至极限时,这些技术都会以各自不同的方式发生故障,这导致他们对工具的选择有着特殊的偏好:成熟、简单、优秀、知名、被更多的用户喜爱、更好的支持、稳定且杰出的表现、通常情况下无故障以及免费。使用这些标准,他们选择了MySQL、Solr、Memcache、Redis、Cassandra,同时还抛弃了MongoDB。 同样这两个点是有关联的

Linux运维精华常见基础面试题

痞子三分冷 提交于 2019-11-28 11:20:24
尽管运维是做的最苦最累的活,最容易背锅的一个岗位,大家还是应该在工作中不断提高自己。 下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华,助力大家跳槽找个高薪好工作。 1、你理解的运维是什么,什么是游戏运维? 1)运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常, 在他运转的过程中,对他进行维护,他集合了网络、系统、数据库、开发、安全、监控于一身的技术 运维又包括很多种,有DBA运维、网站运维、虚拟化运维、监控运维、游戏运维等等 2)游戏运维又有分工,分为开发运维、应用运维(业务运维)和系统运维 开发运维:是给应用运维开发运维工具和运维平台的 应用运维:是给业务上线、维护和做故障排除的,用开发运维开发出来的工具给业务上线、维护、做故障排查 系统运维:是给应用运维提供业务上的基础设施,比如:系统、网络、监控、硬件等等 总结:开发运维和系统运维给应用运维提供了“工具”和“基础设施”上的支撑 开发运维、应用运维和系统运维他们的工作是环环相扣的 2、在工作中,运维人员经常需要跟运营人员打交道,请问运营的人员是做什么工作的? 游戏运营要做的一个事情除了协调工作以外 还需要与各平台沟通,做好开服的时间、开服数、用户导量、活动等计划 3、现在给你二三百台服务器,你怎么对他们进行管理? 管理3百台服务器的方式: 1)设定跳板机,使用统一账号登录

mysql面试相关

旧城冷巷雨未停 提交于 2019-11-28 11:07:19
1、列举常见的关系型数据库和非关系型都有那些? 常见关系型数据库:mysql oracle db2 非关系型数据库:mongodb redis 2、MySQL常见数据库引擎及比较? 常用引擎: myisam:不支持事务,支持表锁 innodb:支持事务,支持行锁和表锁 3、简述数据三大范式? 第一:确保每列保持原子性,即每个字段必须是不可拆分的最小单元 例如:创建一个地址的字段时,就应该将其划分为省市区这三个字段,这就满足了上述的原子性。 第二:表中的每列都和主键相关,一个表里只能存在一种数据,不可把多种数据保存在同一张数据库表中。 例如:即订单里存在客户和商品的信息,建议将客户和商品的数据拆分开 即创建两张表 ,一个放订单和客户的信息,一个放订单和商品的信息! 第三:确保每列都和主键直接相关。而不是间接相关。 例如:订单数据表,将客户编号作为一个外键关联字段和订单表建立联系。 而不可以在订单表中添加客户的其他信息。(例如姓名,公司等) 4、什么是事务?MySQL如何支持事务? 是应用程序中一系列严密的操作,所有操作必须成功完成,否则该事务中每个操作都会被撤销。 mysql的事务:存在4个特性:acid 保证数据的安全 start transaction: try: update db set money=100 where name='erha'; update db set

服务器架构中,集群,负载均衡,分布式有什么区别吗

十年热恋 提交于 2019-11-28 10:52:34
集群就是很多的服务器来实现一种功能,向mysql,很多的服务器都安装mysql,负载均衡就是用来调节的,比方说有很多的用户都在访问读取数据,可是读取a服务器的mysql多,而读取别的服务器的mysql就少,负载均衡把访问a的用户转给b一部分,防止a由于 访问量 过大造成宕机什么的。分布式就是有很多把服务器的相同功能分别部署在很多太计算机上,然后每个地方放上几台,这几台负责提供本地的服务,并且和总的服务器连接,保持数据传递。 来源: https://www.cnblogs.com/NuoChong/p/11405698.html

MySQL MGR集群单主模式的自动搭建和自动化故障修复

只愿长相守 提交于 2019-11-28 10:44:35
随着MySQL MGR的版本的升级以及技术成熟,在把MHA拉下神坛之后, MGR越来越成为MySQL高可用的首选方案。 MGR的搭建并不算很复杂,但是有一系列手工操作步骤,为了简便MGR的搭建和故障诊断,这里完成了一个自动化的脚本,来实现MGR的自动化搭建,自动化故障诊断以及修复。 MGR自动化搭建 为了简便起见,这里以单机多实例的模式进行测试, 先装好三个MySQL实例,端口号分别是7001,7002,7003,其中7001作为写节点,其余两个节点作为读节,8000节点是笔者的另外一个测试节点,请忽略。 在指明主从节点的情况下,如下为mgr_tool.py一键搭建MGR集群的测试demo MGR故障模拟1 MGR节点故障自动监测和自愈实现,如下是搭建完成后的MGR集群,目前集群处于完全正常的状态中。 主观造成主从节点间binlog的丢失 在主节点上对于对于从节点丢失的数据操作,GTID无法找到对应的数据,组复制立马熄火 非写入节点出现错误 看下errorlog 如果是手动解决的话,还是GTID跳过错误事物的套路,master上的GTID信息 尝试跳过最新的一个事物ID,然后重新连接到组,可以正常连接到组,另外一个节点仍旧处于error状态 stop group_replication; SET GTID_NEXT = ' 6c81c118-e67c-4416-9cb0

重新学习Mysql数据库5:根据MySQL索引原理进行分析与优化

和自甴很熟 提交于 2019-11-28 10:35:54
微信公众号【Java技术江湖】一位阿里 Java 工程师的技术小站。作者黄小斜,专注 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发! 一:Mysql原理与慢查询 MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原理”等要求。我们知道一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 本人从13年7月份起,一直在美团核心业务系统部做慢查询的优化工作,共计十余个系统,累计解决和积累了上百个慢查询案例。随着业务的复杂性提升,遇到的问题千奇百怪,五花八门,匪夷所思。本文旨在以开发工程师的角度来解释数据库索引的原理和如何优化慢查询。 一个慢查询引发的思考 select count(*) from task where status=2 and operator_id=20839 and operate

【MySQL】存储引擎

徘徊边缘 提交于 2019-11-28 07:47:22
原文: http://blog.gqylpy.com/gqy/245 目录 #. MySQL支持的存储引擎 1. InnoDB 2. MyISAM 3. NDB 4. Memory 5. Infobright 6. NTSE 7. BLACKHOLE MySQL中的库即文件夹,表即文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制.(如:处理文本用txt类型,处理表格用excel, 处理图片 用png等) 数据库中的表也应该有不同的类型,表的类型不同,会对应mysql不同的存取机制,表类型又称为存储引擎. PS:存储引擎说白了就是如何存储数据,如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库 中数据 的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) 在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据库存储管理机制都是一样的,而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。 ![在这里插入图片描述](http://blog.gqylpy.com/media/ai/2019-03/f065e887-be54-4608-a236-c400c1478427.png) SQL解释器

巨杉学习笔记 | SequoiaDB MySQL导入导出工具使用实战

十年热恋 提交于 2019-11-28 05:21:31
本文来自社区用户投稿,感谢这位小伙伴的技术分享 巨杉数据库架构简介 巨杉数据库作为分布式数据库是计算和存储分离架构,由数据库实例层和存储引擎层组成的。存储引擎层负责数据库核心功能比如数据读写存储以及分布式事务管理。数据库实例层也就是这里的的SQL层负责把应用SQL请求处理后发存储引擎层处理,并且把存储引擎层响应结果反馈给应用层。支持结构化实例比如MySQL实例/PG实例/spark实例,也支持非结构化实例比如 Json实例/S3对象存储实例/PosixFs实例等等。这种架构支持的实例类型比较多,方便从传统数据库无缝迁移到巨杉数据库,减小了开发学习成本,之前也跟数据库圈同行交流,他们对架构也是十分认可。 这里的SQL层采用的是MySQL实例,存储引擎层是有三个数据节点和协调节点编目节点组成。其中数据节点就是用来存储数据的,协调节点不存储数据,是用来把MySQL的请求进行路由分发到数据库节点。编目节点用来存储集群的系统信息比如用户信息/分区信息等等。这里用一个容器来模拟一个物理机或云虚拟机,这里设置的是MySQL实例在一个容器里,编目和节点和协调节点放在了一个容器,三个数据节点分别放在一个容器,三个数据节点构成了三个数据组,每个数据组三个副本。Web应用的海量数据是通过分片切分的方式分散给不同的数据节点,像这里的数据ABC通过分片打散到三台机器。

shell 脚本示例

送分小仙女□ 提交于 2019-11-28 05:05:57
1、9*9乘法表: #!/bin/bash for((i=1;i<=9;i++)); do for((j=1;j<=i;j++)); do echo -ne "${i}*${j}=$[${i}*${j}]\t" ##-ne中-n代表不换行,-e代表识别其中的特殊字符如\t done echo done 2、9*9逆乘法表: #!/bin/bash for((i=9;i>=1;--i)) do for((j=i;j>=1;j--)) do echo -ne "$i*$j=$((i*j))\t" done echo done 3、自动安装jdk:   a、获取到这个安装包,通过使用httpd服务,用wget方式去下载到本机   b、解压到对应的安装目录   c、配置环境变量   d、收尾工作:删除一些不必要的东西,还有做一些环境变量生效的工作 #!/bin/bash BASE_SERVER=hadoop yum install -y wget wget $BASE_SERVER/mysoft/jdk-7u80-linux-x64.tar.gz tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/local cat >> /etc/profile << EOF export JAVA_HOME=/usr/local/jdk1.7.0_80 export