当前位置: 首页 > news >正文

洛阳电商网站建设公司排名网站做维恩图

洛阳电商网站建设公司排名,网站做维恩图,营销型网站规划,vs做网站如何发布简介 在本文中#xff0c;我们将简单介绍什么是No-SQL数据库。然后我们会讨论一种使用关系数据库比较容易实现的查询#xff0c;即连接查询#xff0c;怎么样使用No-SQL来实现。 什么是No-SQL数据库 与No-SQL数据库相对应的是传统的关系数据库#xff08;RDBMS#xff…简介 在本文中我们将简单介绍什么是No-SQL数据库。然后我们会讨论一种使用关系数据库比较容易实现的查询即连接查询怎么样使用No-SQL来实现。 什么是No-SQL数据库 与No-SQL数据库相对应的是传统的关系数据库RDBMS。我们还要从RDBMS开始介绍。RDBMS是传统的数据管理方法。数据存储在包含列和行的表中。每列代表了一个属性每行代表数据的一个实例。每个表都要指定一个主键即唯一标识表的标识符列。使用主键在表之间建立关系。可以使用它作为表的外键在两个表的行之间建立关联。 No-SQL数据库的名称来自于not only SQL。基本包含了RDBMS之外的其它类型的数据库。可以参看这篇文档了解No-SQL数据库的具体介绍。No-SQL数据库包含如下几种类型 Key-value数据库Document数据库Graph数据库In-memory数据库Search数据库 具体的每种No-SQL数据库的介绍可以参看文档的介绍。有必要说明key-value数据库是使用最多的No-SQL数据库。所以我们一般说No-SQL数据库如果没有特别说明指的是key-value数据库。 Key-value数据库 Key-value数据库按照key-value pair的形式存储数据。也就是说如果我们想要访问一条数据我们必须先知道它的key。比如我们有如下的key-value 我们可以使用如下的API通过key获取value Value load(key) 与RDBMS比较起来key-value数据库有如下的有点 No-SQL数据库的schema定义和修改非常灵活。因为保存和读取数据只要依赖key对于value的定义可以非常灵活No-SQL数据库可以支持低latency的操作。因为和RDBMS比较起来key-value的保存和读取非常简单因此通常可以做到latency很低No-SQL数据库可以很好的支持数据库的SCALE。因为key-value的存储形式可以很容易应用partition来根据需求scale out和scale in数据库。 正式因为以上有点key-value数据库在现在的service中使用的越来越多。 问题 现在我们来考虑这样一个问题我们有点到点的航班数据也就是说某一次航班从一个城市在几点起飞到另一个城市。如果我们有了起飞城市和目标城市想查询一个航班无论使用RDBMS还是key-value都很容易实现。这里我们不做过多讨论。我们想解决的问题是如果没有直飞的航班我们如何查询需要一次转机的航班。 使用RDBMS是很容易使用连接查询来解决这个问题的。比如我们定义如下的表 - flight id source target Time 这里ID是主键。 我们可以使用如下的连接查询 Select flight_1.id, flight_2.id From flight as flight_1, flight as flight_2 where flight_1.target flight_2.sourceand flight_1.time flight_2.timeand flight_1.source source cityand flight_2.target target city; 那么如果我们使用key-value数据库如何解决这个问题呢 解决方案 这里我们使用AWS的DynamoDB即DDB作为key-value数据库。DDB的key可以由两部分组成partition key和sort key。具体介绍可以参看这个文档。简单来说partition sort是完整的key。我们可以使用这个key来找到唯一的记录。同时我们还可以使用partition来查询所有拥有相同partition key的所有记录。举例来说如果我有如下两条记录 Partition1, sort1, value1Partition1, sort2, value2 如果我使用如下API Load(partition1, sort1) 我将得到并且只得到第一条记录。 如果我使用如下API Query(partition1) 我同时将得到第一条和第二条记录。 首先我们还是先定义表。但是不同于RDBMS的表结构我们将定义如下表 – source_flight source id target Time Source是partition keyid是sort key。Target和time是value。 我们还定义如下表 – target-flight Target Id Source Time Target是partition keyid是sort key。Source和time是value。 为了使这个例子更容易理解我们定义一些数据如下 Source-flight: Source Id Target Time 北京 1 上海 2024-03-01 北京 2 重庆 2024-03-02 上海 3 香港 2024-03-02 大连 4 香港 2024-03-03 Target-flight Target Id Source Time 香港 3 上海 2024-03-02 香港 4 大连 2024-03-03 重庆 2 北京 2024-03-02 上海 1 北京 2024-03-01 现在我们要寻找从北京经过一次转机飞到香港的飞机。首先我们使用“北京”用query操作从source-flight表里得到从北京起飞的所有飞机 – 数据集1 ID1 2 其次我们使用“香港”用query操作从target-flight表里得到飞到香港的所有飞机 – 数据集2 ID3 4 如果我们使用集合里的“交”操作得到数据集1里的“target”和数据集2里的“source”的交集。然后我们比较time来filter掉数据集2的time在数据集1的time之前的记录。 结论和扩展 我们可以看到对于连接查询这样的用例使用key-pair来解决使比较麻烦的。但是我们可以认为即便使看起来更麻烦的key-pair解决方案latency也很有可能低于RDBMS的解决方案。并且考虑到key-pair数据库在scaleperformanceflexibility方面的优势可以解决具体情况综合考虑哪种方案更好。 作为扩展我们考虑一下如果我们要查询经过两次甚至更多次转机的方案时使用key-pair数据库又该怎样解决呢 这里的解决方法仅是我个人目前能想到的。如果大家有更好的解决方案请大家进行分享。谢谢
http://www.zqtcl.cn/news/835559/

相关文章:

  • 网站项目中的工作流程网站建设社区
  • 建设厅网站查询电工证件提供网站建设公司哪家好
  • 免费网站软件下载安装称多网站建设
  • 网站客户续费深圳福田地图
  • 连云港做电商网站的公司营销公司网站模板
  • 沈阳企业网站优化排名方案富阳做网站公司
  • 企业网站优化报价自己做个网站怎么赚钱
  • 做ui的网站有哪些网站建设订单模板
  • 重庆企业网站优化wordpress 接收询盘
  • 小米4路由器可以做网站嘛杭州淘宝代运营公司十大排名
  • 枞阳做网站的百度搜索入口
  • 网站建设提议徐州网站建设方案咨询
  • 昆明高端网站建设专门做游轮的网站
  • 教育培训网站抄袭网站是广西住房和城乡建设厅
  • 广州做网站建设的公司哪家好网站建设运营公司
  • 网站集约化建设 技术国内永久在线免费建站
  • 极简资讯网站开发有什么免费推广项目的好软件
  • 网站有哪几种类型如何让百度分享按钮在网站每个页面都有
  • 北京市昌平建设工程招标网站网站建设要学哪些软件有哪些方面
  • 部队内网网站建设方案诱导视频网站怎么做
  • 安徽省美好乡村建设网站郑州网站建设 论坛
  • 手机网站怎么建设软件外包公司绩效考核内容
  • 北京最大的火车站网站免费推广方式
  • 外贸网站建设系统工程公司名称大全
  • 手机视频网站建站吴江区经济开发区建设工程网站
  • 网站建设存在哪些问题学校网站手机站的建设
  • 婚恋网站设计手机免费制作网站模板
  • 北京网站建设与维护公司网络组建方案设计
  • 自己做网站好还是凡科樱花动漫做网站
  • 自己做外贸开通什么网站wordpress万能主题