微课程

微课程 | 第十三课《全局序列视频演示》

耗尽温柔 提交于 2020-01-18 08:12:33
微课程 | 第十三课《全局序列视频演示》 上一期我们介绍了全局序列的原理,接下来我们通过视频来演示一下全局序列功能。我们来看一下这两种全局序列是怎么工作的。 时间戳算法 首先是 snowflake ,也就是所谓时间戳算法。 微课程 | 第十三课《全局序列视频演示》 默认的是直接使用时间戳算法,在实际的使用中先设置一下。在 server.xml 里面有一个叫 sequnceHandlerType 的属性。值为 2 表示时间戳类型,其它数值在文档中有详细介绍。我们去配置一个有全局序列的表。tb_hash_sharding_er2 表里面的 autoIncrement 属性为 true。target 是用来配置的全局序列的。然后 snowflake 算法还有一个工作节点,它标识了机器的 ID 。在配置文件当中分别有两行配置。这两行是一个联合主键,只要在不同机器上,联合值就不一样,那么就实现了标识。登录一个 dble 的流量端口。查看刚刚建的表是空的。再看一下这张表的结构,一共是三行。第一行数据类型是 bigint ,因为 snowflake 是一个 64 位的整数。64 位的整数超过了一般 int 的长度,所以我们选用 bigint 存储,这里我们需要注意。然后我们插入一条数据,看到已经生成了一个意向的序列号。然后我们再插入另外一个值。可以看到生成了一个完全不一样的序列号

微课程 | 第十课《ER 表实现方法 2》

老子叫甜甜 提交于 2019-12-20 16:19:16
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> https://v.youku.com/v_show/id_XNDQ3NjIxMzAwOA==.html 上一期我们介绍了 ER 表的第一种实现方式,第二种其实不用配置 child_table 也可以实现 ER 表。 如图,有这样的 6 张表 tableA-F。这些表我设置了拆分列、分布节点和拆分算法。把它们分为三组,可以看到表格最后一列的分组号为 1 的,它们的分布节点以及拆分算法完全一样时,这三张表其实可以互为 ER。因为拆分列在将来做 JOIN 的时候是要用作 ON 的条件。但只要规则分布相同,他们之间可以互为 ER。另外几张表,一个是算法一样但分布节点是反的,另外一种是算法就不一样。这就没法做为 ER 表关联了,这样配置更灵活,不需要去配置 child_table,但会有一些限制。我们来看这样一个配置。 这两张表除了表名,其他基本一样,是互为 ER 的关系。接下来,看一下演示操作。 https://v.youku.com/v_show/id_XNDQ3NjIyMjkwOA==.html 首先看下表数据,再看一下 JOIN 的结果,结果正确。我们再去看一下 EXPLAIN 查询计划,同样有四行结果。前两行表示整体的 JOIN 下发给 MySQL,第三行表示合并,第四行做 shuffle_field

微课程 | 第六课《复杂查询》

删除回忆录丶 提交于 2019-12-07 09:11:40
https://v.youku.com/v_show/id_XNDQ2MDAzOTE2MA==.html 上一期我们通过基本拆分算法,展示基本配置是什么样的。现在来介绍下 dble 其他的一些功能。 dble 查询流程图 首先基本的 DML 我们已经介绍过了,在这里介绍下复杂查询。如图所示,所谓复杂查询大概是这样的一个定义。包括一些跨库分布的的数据查询、聚合函数、JOIN、UNION、子查询、复杂表达式和视图等等。dble 除了相关子查询是不支持的,其他都已经支持了。我们可以通过这张图来看是怎么做的。从上往下看,首先是一个客户端,然后是一个网络通讯层,基本上是通过 NIO 来通信。NIO 通信后,是 MySQL 通信协议。我们在 dble 层面做了一个 MySQL 协议的全范围的支持。这样会把二进制的 TCP 报文内容转变成我们熟悉的 SQL 文件,然后对 SQL 开始解析,从这里开始分两段。 1、简单查询 一个是简单语句,比如 select * from 某某表。或者是单表增删改,这样一些简单语句。条件化简是一些冗余的条件简化,比如说我在写 SQL 的时候。为了安全或者拼装方便,经常会有 1=1 这种这种没什么用的条件。化简以后通过路由计算,比如我刚才的 select * from table where id=? 。我通过路由计算已经算到他要路由到哪一个数据节点。计算好以后

微课程 | 第六课《复杂查询》

泪湿孤枕 提交于 2019-12-07 09:06:13
https://v.youku.com/v_show/id_XNDQ2MDAzOTE2MA==.html 上一期我们通过基本拆分算法,展示基本配置是什么样的。现在来介绍下 dble 其他的一些功能。 dble 查询流程图 首先基本的 DML 我们已经介绍过了,在这里介绍下复杂查询。如图所示,所谓复杂查询大概是这样的一个定义。包括一些跨库分布的的数据查询、聚合函数、JOIN、UNION、子查询、复杂表达式和视图等等。dble 除了相关子查询是不支持的,其他都已经支持了。我们可以通过这张图来看是怎么做的。从上往下看,首先是一个客户端,然后是一个网络通讯层,基本上是通过 NIO 来通信。NIO 通信后,是 MySQL 通信协议。我们在 dble 层面做了一个 MySQL 协议的全范围的支持。这样会把二进制的 TCP 报文内容转变成我们熟悉的 SQL 文件,然后对 SQL 开始解析,从这里开始分两段。 1、简单查询 一个是简单语句,比如 select * from 某某表。或者是单表增删改,这样一些简单语句。条件化简是一些冗余的条件简化,比如说我在写 SQL 的时候。为了安全或者拼装方便,经常会有 1=1 这种这种没什么用的条件。化简以后通过路由计算,比如我刚才的 select * from table where id=? 。我通过路由计算已经算到他要路由到哪一个数据节点。计算好以后

微课程 | 第六课《复杂查询》

流过昼夜 提交于 2019-12-06 16:55:38
https://v.youku.com/v_show/id_XNDQ2MDAzOTE2MA==.html 上一期我们通过基本拆分算法,展示基本配置是什么样的。现在来介绍下 dble 其他的一些功能。 dble 查询流程图 首先基本的 DML 我们已经介绍过了,在这里介绍下复杂查询。如图所示,所谓复杂查询大概是这样的一个定义。包括一些跨库分布的的数据查询、聚合函数、JOIN、UNION、子查询、复杂表达式和视图等等。dble 除了相关子查询是不支持的,其他都已经支持了。我们可以通过这张图来看是怎么做的。从上往下看,首先是一个客户端,然后是一个网络通讯层,基本上是通过 NIO 来通信。NIO 通信后,是 MySQL 通信协议。我们在 dble 层面做了一个 MySQL 协议的全范围的支持。这样会把二进制的 TCP 报文内容转变成我们熟悉的 SQL 文件,然后对 SQL 开始解析,从这里开始分两段。 1、简单查询 一个是简单语句,比如 select * from 某某表。或者是单表增删改,这样一些简单语句。条件化简是一些冗余的条件简化,比如说我在写 SQL 的时候。为了安全或者拼装方便,经常会有 1=1 这种这种没什么用的条件。化简以后通过路由计算,比如我刚才的 select * from table where id=? 。我通过路由计算已经算到他要路由到哪一个数据节点。计算好以后

《基于微信平台的课程管理系统设计》论文笔记(八)

最后都变了- 提交于 2019-12-03 14:27:55
《基于微信平台的课程管理系统设计》论文笔记 一、基本信息 标题 :基于微信平台的课程管理系统设计 时间 :2016-05-30 来源 : 科技广场 研究方向 :课程管理系统 关键词 :课程管理系统; 微信(WeChat); 微信公众平台; 课程管理; 二、研究内容 论文内容 : 论文结构 : 三、结论 四、参考文献 [1]刘晓彬,高永平,单勇,黄敬仁. 基于微信平台的课程管理系统设计 [J].科技广场,2016(05):186-189. 来源: https://www.cnblogs.com/mobenw/p/11799702.html