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

企业标准建站intitle 无线网站制作

企业标准建站,intitle 无线网站制作,长春关键词搜索排名,凡总创业网站作者 | Alex Petrov所有数据库管理系统的主要工作都是可靠地存储数据并使其对用户可用。我们使用数据库作为数据的主要来源#xff0c;帮助我们在应用程序的不同部分之间共享数据。我们使用数据库#xff0c;而不是在每次创建新应用程序时寻找存储和检索信息的方法#xff0… 作者 | Alex Petrov所有数据库管理系统的主要工作都是可靠地存储数据并使其对用户可用。我们使用数据库作为数据的主要来源帮助我们在应用程序的不同部分之间共享数据。我们使用数据库而不是在每次创建新应用程序时寻找存储和检索信息的方法也不是每次都去发明一种组织数据的新方法。这样一来我们就可以专注于应用程序逻辑而不是基础设施。数据库是模块化的系统由多个部分组成接受请求的传输层、决定以最高效方式运行查询的查询处理器、执行操作的执行引擎以及存储引擎。存储引擎或数据库引擎是数据库的一个软件组件它负责在内存和磁盘上存储、检索和管理数据而设计它的目的是长久保存每个节点的数据[REED78]。数据库可以响应复杂的查询存储引擎则会更细粒度地看待数据并提供一组简单的数据操作API允许用户创建、更新、删除和检索数据记录。从某个角度来看数据库是构建在存储引擎之上的应用程序它提供了表结构schema、查询语言、索引、事务和许多其他有用的特性。为了获得灵活性键和值都可以是没有预设格式的任意字节序列。它们的排序和表示语义是在更高级别的子系统中定义的。例如你可以在一个表中使用int3232位整数作为键而在另一个表中使用asciiASCII字符串从存储引擎的角度来看这两个键都只是序列化的条目。BerkeleyDB、LevelDB及其后代RocksDB、LMDB及其后代libmdbx、Sophia和HaloDB等存储引擎的开发都与它们现在所嵌入的数据库彼此独立。使用可插拔的存储引擎使数据库开发人员能够使用现有存储引擎来构建数据库系统并将精力集中在其他子系统上。同时数据库系统组件之间清晰的解耦为切换不同引擎提供了机会这些引擎可能分别适用于特定的用例。例如流行的数据库MySQL有几个存储引擎包括InnoDB、MyISAM和RocksDB在MyRocks发行版中而MongoDB则允许在WiredTiger、内存以及现已弃用的MMAPv1存储引擎之间进行切换。 数据库的比较 对数据库系统的选择将会产生长期的影响。如果选择的数据库不合适因其导致性能问题、一致性问题或运维上的挑战那么我们最好在开发周期的早期就发现这一点因为迁移到不同的系统可能并非易事甚至在某些情况下你还需要对应用程序的代码进行重大的修改。每个数据库系统都有优点和缺点。为了降低进行高成本迁移的风险你可以在选择数据库上投入一些时间以确保其具备满足应用程序需求的能力。试图根据数据库的组件例如使用的存储引擎数据共享、复制和分布的方式等、它们的排名ThoughtWorks等咨询机构或诸如DB-Engines和Database of Databases等数据库比较网站所呈现的流行度值或实现语言C、Java或Go等来比较数据库可能导致无效和不成熟的结论。这些方法只能用于高层次上的比较并且可能出现例如在HBase和SQLite之间进行选择这样粗糙的对比。因此即使只是对每个数据库的工作原理和内部结构有粗浅了解这些了解也可以很好地帮助你得出一个更可靠的结论。每一次比较都应该从清晰界定的目标开始因为哪怕是最小的偏差都可能使整个调查完全无效。如果你正在找寻一个非常适合当下或者未来的工作负载的数据库那么你所能做的最好的事情就是在不同的数据库系统上模拟这些工作负载、测量对你很重要的那些性能指标并比较结果。有些问题特别是性能和可伸缩性方面的问题只有在一段时间后或随着容量的增长才会开始显现出来。为了发现潜在的问题最好在尽可能接近真实生产环境的环境中进行长期的运行测试。模拟现实世界中的工作负载不仅能帮助你了解数据库的运行方式还能帮助你学习如何操作与调试数据库并了解其社区的友好程度和能提供帮助的程度。数据库的选择总是这些因素的组合而性能通常并不是最重要的方面使用保存数据缓慢的数据库通常比使用会快速丢失数据的数据库要好得多。要比较数据库非常详细地理解用例并定义当前和预期的变量是有帮助的例如:表结构和记录大小客户端数量查询类型和访问模式读写查询速率任何这些变量中的预期变化明确这些变量可以帮助回答以下问题数据库支持所需的查询吗数据库能够处理我们计划存储的数据量吗单个节点可以处理的读写操作有多少一个系统计划要有多少个节点鉴于预期的增长率我们如何扩展集群维护过程是什么在回答了这些问题之后你可以构建一个测试集群并模拟你的工作负载。大多数数据库已经有了压测工具可以用来重现特定的用例。如果没有标准的压测工具用来在数据库生态系统中生成现实中的随机工作负载那么这可能是一个危险的信号。如果有什么东西让你无法使用数据库自带的工具那么你可以尝试一个现有的通用工具或者从零开始实现一个。如果测试结果理想那么进一步熟悉数据库代码可能会有更大的帮助。为了阅读源代码首先要了解数据库的各个部分、如何查找不同组件的源代码然后浏览这些组件。即使仅对数据库代码库有一个粗略的了解也有助于你更好地理解它产生的日志和配置参数并帮助你在使用数据库的应用程序中甚至在数据库代码本身发现问题。有些人以为可以将数据库当作黑匣子而无须了解其中的内容是件好事。但实践往往表明这样做迟早会碰到bug、服务中断、性能倒退或其他问题。你最好为这些问题做好准备如果你了解并且理解数据库的内部结构就可以减少业务风险且更有可能快速地恢复。用于基准测试、性能评估和比较的一个流行工具是Yahoo! Cloud Serving BenchmarkYCSB。YCSB提供了一个框架和一组可应用于不同数据存储的公共工作负载集。就像任何通用的东西一样你应该小心使用这个工具因为使用它很容易得出错误的结论。为了进行公平的比较并做出明智的决定你需要投入足够的时间来了解数据库将在何种实际环境下运行并相应地调整基准测试的内容。TPC-C基准事务处理性能委员会Transaction Processing Performance CouncilTPC提供了一组数据库厂商用来比较和宣传其产品性能的基准。TPC-C是一个联机事务处理OLTP基准它是只读事务和更新事务的混合用于模拟常见的应用程序工作负载。该基准关注的是执行的并发事务的性能和正确性。主要性能指标是吞吐量数据库系统每分钟能够处理的事务数。其需要执行事务具备ACID属性并符合基准本身定义的属性集。此基准不专注于任何特定的业务部门但提供了对大多数适用OLTP数据库的应用都很重要的抽象操作集。它包括几个表和实体如仓库、库存、客户和订单并指定了表布局、可以对表执行的事务的细节、表的最小行数和数据持久性约束。这并不意味着基准测试只能用于比较数据库。基准可用于定义和测试服务级别协议注1的详细信息、了解系统要求以及容量规划等。你在使用数据库之前对它了解得越多在生产环境中运行数据库时节省的时间就越多。选择数据库是一个长期的决定最好跟踪新发布的版本了解到底发生了什么变化及其原因并制定升级策略。新版本通常包含对bug和安全问题的改进及修复但也可能会引入新的bug、性能退化或意外行为因此在部署新版本之前测试新版本也是至关重要的。查看数据库开发者以前是如何处理升级的可能会让你对将来的情况有一个很好的了解。过去的顺利升级并不能保证未来的升级也会如此顺利但过去复杂的升级可能也是未来升级亦会不容易的标志。 理解权衡取舍 作为用户我们可以看到数据库在不同条件下的行为但是在使用数据库时我们必须做出选择来直接影响其行为。设计一个存储引擎肯定比仅实现一个教科书上的数据结构要复杂得多很难在一开始就将许多细节和边界情况处理正确。我们需要设计物理数据布局和组织指针、决定序列化格式、了解数据将如何被进行垃圾收集、存储引擎如何适应整个数据库系统的语义、探索如何使其在并发环境中工作以及最后确保在任何情况下都不会丢失任何数据。不仅有许多事情需要决定而且这些决定中的大多数都涉及权衡取舍。例如如果按数据插入数据库的顺序保存我们就可以更快地存储它们但是如果按字典顺序检索它们我们就必须在将结果返回给客户端之前对它们进行重新排序。正如你将在本书中看到的那样存储引擎设计有许多不同的方法每个实现都有它自己的优点和缺点。在研究不同的存储引擎时我们会讨论它们的优点和缺点。如果对于每个可以想到的用例都有一个绝对最优的存储引擎那么人人都一定会使用它。但是并不存在这样的储存引擎因此我们需要根据服务的工作负载和用例进行明智的选择。市面上有许多存储引擎它们使用各种数据结构并且用不同的语言实现—从低级语言如C到高级语言如Java。所有存储引擎都面临相同的挑战和限制。可以将其与城市规划相类比我们为特定的人口数量构建一座城市并选择是在高度上还是面积上对这座城市进行扩展。这两种情况都可以将同样数量的人放入该城市但这些方法导致了截然不同的生活方式。当在高度上建设城市时人们住在公寓里人口密度可能导致面积较小地区的交通流量增加而在一个面积更大且更分散的城市中人们更有可能住在大房子里但通勤则需要走更远的路。类似地存储引擎的开发人员所做的设计决策使它们更适合于不同的情况有些对低读写延迟进行了优化有些则试图最大化存储密度每个节点存储的数据量而有些则专注于运维上的简单性。在《数据库系统内幕》的小结中你可以找到可用于实现的完整算法和其他附加参考。阅读本书可以使你为高效地利用这些资料而做好准备并使你对其中所述概念的现有替代办法有扎实的理解。本文摘编于《数据库系统内幕》经出版方授权发布。推荐阅读 浅谈分布式存储中的网络通信138 张图带你 MySQL 入门如何在 Kubernetes 上配置 Jenkins突发印度封禁抖音、微信、快手等 59 款中国 App厉害国内大学生计算机编程第一人一人挑战一个队百度最年轻 T10现创业自动驾驶Balancer因通缩代币STA遭遇闪电贷攻击价值50万美元资产被黑浅谈分布式存储中的网络通信真香朕在看了
http://wiki.neutronadmin.com/news/290329/

相关文章:

  • 有做企业网站的吗creative建网站平台
  • 安宁市建设局网站电子商务的就业方向是什么
  • 北京网站建设公司分享网站改版注意事项北京小程序制作首选华网天下
  • 网站开发音乐做网站江西
  • 网站底部优化文字网销怎么销售的
  • 成都系统网站建设制作网站首先要知道什么
  • 如何开发网站自己做站长罗伯特清崎说的网络营销是什么
  • asp网站图片不显示无锡关键词优化价格
  • 网站在线支付接口申请娃娃修复师的工作主要是什么
  • 中国第四冶金建设有限公司官方网站做网站用什么cms
  • 网站 点击率品牌设计论文题目
  • 上海网站制作网互联网推广平台有哪些公司
  • 企业发展历程网站自己做刷东西的网站
  • 中国最新军事新闻最新消息视频百度关键词seo排名软件
  • 盐城网站建设找哪家好阿里巴巴电子商务网站建设目的
  • 自己做网站的难度门户网站后台管理模板
  • 如何给网站做下载附件wordpress图片显示
  • 深圳南山做网站临淄信息网最新招聘信息
  • 有没有做淘宝网站的坊子网站建设
  • 自己的网站什么做优化站长之家综合查询工具
  • 济源做网站的好公司网页设计电商网站
  • 免费企业查询网站长沙企业网站建设优度
  • 北京 代理前置审批 网站备案修改网站j广州网络公司
  • 单页网站模板做seo青岛万科蓝山设计公司
  • 宁波网站推广优化哪家正规社交网站是怎么做的
  • 网站服务器速度对seo有什么影响免费搭建贴吧系统网站
  • 网站开发服务器的选择昆明做网站建设多少钱
  • 怎样建设淘客网站正邦设计公司简介
  • 班级网站开发环境做网站点击率赚钱吗
  • 广州网站建设哪个平台好徐州企业建站系统