MySQL分区概念,使用场景以及限制

文章目录分区的概念分区使用场景分区的限制为什么要使用分区分区的概念分区表是一个独立的逻辑表,但是底层是由多个物理子表组成。分区的主要目的是将数据按照一个较粗的粒度分布在不同的表中,能够快速过滤掉大量数据。分区使用场景分区的限制为什么要使用分区比如表数据量远大于内存时,索引在空间和维护上的消耗很大,即使用到索引,数据可能也不是按照想要的方式聚集,而且会有大量的碎片产生,最终导致一个查询产生成千上万的随机IO,效率低下,使用分区我们就能快速过滤掉大量不需要的数据,从而提高效率。...
分类: 其他 发布时间: 11-23 09:44 阅读次数: 0

MySQL表RANGE分区,新增,删除,重组,效率对比

可以使用分区的场景分区的限制为什么要使用分区,比如表数据量远大于内存时,索引在空间和维护上的消耗很大,即使用到索引,数据也不是按照想要的方式聚集,而且会有大量的碎片产生,最终导致一个查询产生成千上万的随机IO。...
分类: 其他 发布时间: 11-23 09:44 阅读次数: 0

MySQL表LIST分区,新增,删除,重组等

引用MySQL表RANGE分区,新增,删除,重组,效率对比这篇文章的表作为示例。LIST分区和RANGE分区很相似。文章目录LIST分区管理创建表时进行分区为现有数据的表进行分区新增分区重组分区合并分区拆分分区查看分区的数据量删除分区取消分区LIST分区管理创建表时进行分区CREATE TABLE `student_1` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `NAME` varchar(30) NOT NULL, `SEX` char(2)
分类: 其他 发布时间: 11-23 09:44 阅读次数: 0

7.容器类型数据转换

# 容器类型数据转换# list列表'''字符串转换为列表时 会把字符串中的每一个字符当做列表的元素数字类型是 非容器类型,不能转换为列表集合 可以转换为 list列表类型元组 可以转换为list类型字典 可以转换为list类型,只保留了字典中的键'''# n =(1,3)# res =list(n)# print(n,type(n),res,type(res))# tuple 元组'''数字类型 非容器类型, 不能转换为元组其他容器类型的数据进行转换时和列表一样'''.
分类: 其他 发布时间: 11-23 09:44 阅读次数: 0

1.python数字类型

#数字类型 Number#int 整形var =521varn =-111varn =0x10 #十六进制varn = b'001100111' #bytes# 复数varn =5+6j #complex#布尔类型 boolvarn =Truevarn =Falseprint(varn,type(varn))# 数值类型可以参与运算a =10b =20print(a+b) ...
分类: 其他 发布时间: 11-23 09:43 阅读次数: 0

2.pthon list列表类型

#list列表类型# 列表用来表示一系列数据,例如:需要记录一组数字或者其他数据# 在需要记录多个数据时,可以使用中括号进行定义 [],# 并且每个数据之前使用逗号进行分隔# 例如以下数据,定义了几组数字varlist =[192,168,200,68]print(varlist,type(varlist)) # <class 'list'> 列表类型# 列表中存储的数据可以是任意类型的# 列表中存储的每一组数据,称为元素# 列表中存储的数据,可以通过下标的方式进行获取.
分类: 其他 发布时间: 11-23 09:43 阅读次数: 0

3.python Dict字典类型

# Dict 字典类型'''+ 字典也是用来存储一组或多组数据时使用,使用大括号 {} 来定义+ 字典是键值对的存储方式 name:'admin'+ 键和值之间使用冒号进行分隔,多组键值对之间使用逗号分隔+ 键必须是字符串或数字类型,值可以是任意类型+ 键名不能重复,值可以重复'''# 比如需要记录一本书的相关记录,书名,作者,价格vard = {'title':'《周周恋爱记》','author':'周周','price':'22'}print(vard,type(vard)) #&.
分类: 其他 发布时间: 11-23 09:43 阅读次数: 0

4.tuple 元组类型

# 元组类型'''+ 在定义多个数据内容时可以选择使用List列表类型+ 还可以使用元组类型来定义,元组和列表非常像,都是用于存储多个数据时使用+ 元组使用小括号进行定义() ,列表使用中括号进行定义'''# tuplevart =(1,2,3,4,'a','b')# print(vart,type(vart))# print(vart[3])# 在定义元组时,如果元组中只有一个元素,那么需要加逗号(,),不然就不是元组类型了# vart =('abc',)# print(var.
分类: 其他 发布时间: 11-23 09:43 阅读次数: 0

5.set集合类型

# set集合类型'''+ set集合是一个, 无序且元素不重复的,集合的数据类型+ set集合使用 中括号或者set()方法来定义'''# 集合的定义方式# vars ={1,2,3,'a','b',1}#值不可以重复# vars = set('134569')# 如果需要定义一个空集合时 只能使用 set()方法 ,因为使用大括号时定义的空字典# vars ={}# vars =set()# print(vars,type(vars)) #<class 'set'&.
分类: 其他 发布时间: 11-23 09:42 阅读次数: 0

6.数据类型转换

#数据类型转换'''字符串 string数据类型 Number整型 int浮点 float复数布尔 bool列表 list元组 tuple字典 dict集合 set可变数据类型 :列表 字典 集合不可变数据类型:字符串 数字 元组容器类型数据 :字符串 列表 元组 集合 字典‘非容器类型数据 :数字 布尔类型'''#数据类型转换'''什么是数据类型转换? 把一个数据类型转换为另一个数据类型:例如 字符串转为数字为什么需要数据类型转换? 因为不同的.
分类: 其他 发布时间: 11-23 09:42 阅读次数: 0

ZooKeeper综述

目录2021SC@SDUSCZookeeper是什么Zookeeper的特性1.顺序一致性2.原子性3.单一视图4.可靠性5.实时性6.等待无关Zookeeper的应用场景配置管理命名服务集群管理分布式锁Zookeeper的局限性2021SC@SDUSCZookeeper是什么Zookeeper 是一个分布式的,开源的分布式应用程序协调服务可以实现配置管理,名字服务,提供分布式同步以及集群管理等功能。事实上,Zookeeper本质是一个分布式小文件存储系统Zookeeper的特性1.顺序一致性
分类: 其他 发布时间: 11-23 09:42 阅读次数: 0

Zab协议(1)-选举算法准备阶段源码解析

目录2021SC@SDUSCZab简介源码分析2021SC@SDUSCZab简介Zookeeper(后文简称zk) 是通过 Zab 协议来保证分布式事务的最终一致性。基于该协议,zk实现了一种主备模型(即Leader和Follower模型)的系统架构来保证集群中各个副本之间数据的一致性。leader 负责数据的读写,而follower只负责数据的读,如果follower遇到写操作,会提交到leader;Zab可大致分为四个阶段:选举:通过特定的选举算法选出leader,发现:leader与fol
分类: 其他 发布时间: 11-23 09:42 阅读次数: 0

Zab协议(2)-选举算法选举阶段源码解析(1)

2021SC@SDUSC目录选举阶段介绍回顾源代码分析总结选举阶段介绍分析源代码之前首先我们先了解一下选举的流程。本阶段是Zab的第一个阶段,每个节点在一开始都处于选举节点,只要有一个节点得到超过半数节点的票数,它就可以当选准 Leader,只有到达第三个阶段(也就是同步阶段),这个准 Leader 才会成为真正的 Leader。每个Server在广播自己的选票前,会将自己的投票箱(recvset)清空。该投票箱记录了所受到的选票。例如:Server_2 投票给 Server_3,Server_
分类: 其他 发布时间: 11-23 09:41 阅读次数: 0

Zab协议(3)-选举算法选举阶段源码解析(2)

2021SC@SDUSC目录回顾QuorumPeer介绍源码分析回顾上一节分析了投票阶段的数据传输和投票的一部分过程,其中经常用到QuorumPeer类,本节分析一下QuorumPeer代码QuorumPeer介绍该类zookeeper的Leader选举的启动类,负责创建选举算法,zk数据恢复,启动leader选举。源码分析 public enum ServerState { LOOKING, FOLLOWING, LEADING, OBSERVING; }首
分类: 其他 发布时间: 11-23 09:41 阅读次数: 0

Zab协议(4)-选举算法选举阶段源码解析(3)

2021SC@SDUSC目录背景介绍回顾源码分析背景介绍该部分是选举过程最核心的代码。正式选举过程中需要知道以下两个个名词。(2)zxid:服务器在运行时产生的数据id,zxid越大,表示数据越新。(3)epoch:选举的轮数,即逻辑时钟。随着选举的轮数增加回顾 while (running) { switch (getPeerState()) { case LOOKING:
分类: 其他 发布时间: 11-23 09:41 阅读次数: 0

Zab协议(5)-选举算法选举阶段源码解析(4)

2021SC@SDUSC目录回顾源码分析回顾上一环节讲了一下选举过程中最核心代码的LOOKING状态,这篇文章分析一下选举过程中的网络通信。源码分析 case OBSERVING: try { LOG.info("OBSERVING"); setObserver(makeObserver(logFactory));
分类: 其他 发布时间: 11-23 09:41 阅读次数: 0

Zab协议(6)-数据恢复源码分析(1)

2021SC@SDUSC目录回顾源码分析回顾前面分析完了zk的选举过程,但这些都是zk正常情况下运行的过程,这次分析一下zk出现故障时的数据恢复源码分析loadDataBase方法是用来从本地文件中读取日志文件来恢复数据 private void loadDataBase() { File updating = new File(getTxnFactory().getSnapDir(), UPDATING_EP
分类: 其他 发布时间: 11-23 09:40 阅读次数: 0

输入n个同学的姓名和年龄,将年龄从大到小排序,当年龄相同时按照姓名字典序排序

题目输入n个同学的姓名和年龄,将年龄从大到小排序,当年龄相同时按照姓名字典序排序输入第一行一个整数n第二行到n+1行,每行一个同学的信息。姓名和年龄用空格隔开输出n行,排序结果样例输入4yrgA 21yrgB 21zcSmart 22zcHandsome 22样例输出zcHandsome 22zcSmart 22yrgA 21yrgB 21解法length = int(input())dic = {}i = 0while i < length:
分类: 其他 发布时间: 11-23 09:40 阅读次数: 0

汽车停车问题

题目解法L = [1,0,0,1,1,1,0,0,1,1,1]def Road_AfterTstep(L,n): for u in range(n): i=0 flag=0 #定义一个标志,如果为0,表示最后一个位置的汽车没有开到第一个位置,如果为1,则开到了, if L[-1]==1 and L[0]==0: #如果最后一个位置是1,而且第一个位置是0,则汽车
分类: 其他 发布时间: 11-23 09:40 阅读次数: 0

Zab协议(7)-数据恢复源码解析(2)

2021SC@SDUSC目录回顾源码分析回顾前面分析完了zk的选举过程,但这些都是zk正常情况下运行的过程,这次分析一下zk出现故障时的数据恢复源码分析首先定位到Learner类,因为syncWithLeader方法的代码实在是太长,一步步分析。QuorumPacket ack = new QuorumPacket(Leader.ACK, 0, null, null); QuorumPacket qp = new QuorumPacket(); long newE
分类: 其他 发布时间: 11-23 09:40 阅读次数: 0