作者归档:在线疯狂

RSS feed of 在线疯狂

SQL与NoSQL对比

自从NoSQL数据库从概念逐渐转化为应用以来,我一直想深度探索一下这两个概念。并且我花了一些时间来搞清楚——是什么实际导致了NoSQL数据库的演化。

SQL or NoSQL

这一切都归结于使用快捷、实时和联机的方式向终端用户提供最佳体验的需求。随着存储技术的急剧变化,数据库开发者正试图做出优化以获得更好的性能。

下面是SQL和NoSQL数据库的一些基础知识:

什么是SQL数据库

谈到SQL数据库,基本的概念是,它是关系型的数据库。是的!SQL数据库是关系型数据库。那么到底什么是关系型数据库呢?关系型数据库严格的使用关系(经常被称为表)来存储数据。一个关系型数据库通过使用数据集中找到的相同特征来匹配数据。而由此产生的群组被称为模式。

关系型数据库中的关系(表)被划分为行和列的集合。元组代表使用查询从数据库表中取出的行。

SQL有什么用?

SQL(结构化查询语言)是一种用来管理关系型数据库中数据的编程语言。Microsoft SQL server是一个很好的例子。Microsoft SQL server是一种关系型数据库,被用于使用应用从相同的计算机或者网络存储、获取数据。

SQL server的基本特征

关系型数据库是一组包含装配在预定义类中数据的表。

每个表包含一个或者多个以列形式存在的数据类别。

每一行包含一个类别由列定义的唯一数据实例。

用户可以在不了解数据库表结构的情况下访问数据库中的数据。

SQL数据库的限制

可扩展性:用户不得不在功能强大,价格昂贵且难以操作的服务器上对关系型数据库加以扩展。扩展关系型数据库时它必须在多台服务器上进行分发。跨服务器操作表可能会引起混乱。

复杂性:在SQL服务器中的数据必须与表相适配。如果你的数据无法与表适配,那你就需要将你的数据库接结构设计的更加复杂,反过来变得更加难以处理。

什么是NoSQL数据库

在过去的几年里,科学界和网络公司开始考虑使用"one size fits all"(放之四海而皆准)的方式存储数据,这已经导致了多种替代数据库的出现。这场运动,及其新的数据存储通常被归纳为NoSQL。

NoSQL的基本性质是,它不需要固定的表模式,通常避免了连接操作,并通常采用横向扩展。学术研究人员通常将这些数据库称为结构化存储,该术语将关系型数据库作为一个子集包含在内。

NoSQL数据库也对"ACID"(原子性,一致性,独立性和持久性)做出了折衷。 NoSQL数据库,在不同程度上,甚至允许数据模式在记录与记录之间存在差异。如果NoSQL中不存在模式或者表,那么你如何看到数据库结构呢?答案在这里

不需要模式:数据可以在没有事先严格定义数据库模式的情况下插入NoSQL数据库中。由此推断,拟插入数据的格式可以随时改变,而不会导致应用的破坏。这提供了很大的应用灵活性,最终提供了业务的灵活性。

自动伸缩:NoSQL会自动地将你的数据散布在多台服务器上,无需应用协助。服务器在应用不停机的情况下从数据层增加或者移除。

集成缓存:为了提升性能,先进的NoSQL技术奖数据缓存至系统内存,与此相对,SQL数据库要达到相同的目的必须使用单独的基础设施。

谈到NoSQL数据存储的架构,流行的NoSQL数据库有3种。

键值存储。顾名思义,键值存储是一种使用键存取数据的系统。这些系统可以处理结构化或者非结构化的数据。 ...

继续阅读

SAE存储介质比较—MySQL,KVDB,Memcached

项目 MySQL KVDB Memcached
存储介质 硬盘 硬盘 内存
存储容量
存储花费
查询速度(qps)
结构化查询 支持 不支持 不支持
存储类型 关系型 键值型 键值型
预定义模式 支持 不支持 不支持

 

MySQL较适合存储需要使用结构化查询的数据;

Memcached适用于对访问频度高的页面或者数据进行缓存,以提高访问性能;

KVDB则适合于存储结构简单的键值型数据。

Google站长工具添加站点地图的好处

通过站点地图,Google 可以在您的网站上找到通过其他方式可能无法发现的网页。用最简单的话来讲,XML 站点地图(一般就叫站点地图)就是您网站上各网页的列表。创建并提交站点地图有助于确保 Google 了解您网站上的所有网页,包括 Google 在正常抓取过程中可能找不到的网址。

您可以根据站点地图协议创建站点地图,也可以提交文本文件或 RSS/Atom 供稿作为站点地图。如何创建站点地图

除此之外,您也可使用站点地图向Google提供有关您的站点上特定类型内容的元数据,包括视频图像移动网址新闻例如,视频站点地图条目可指定视频的时长、类别以及是否适合全家人观看;而图片站点地图条目可提供关于图片的主题、类型和许可的信息。您还可以使用站点地图提供有关您网站的其他信息,例如最后更新日期以及网页的预计更改频率。我们建议您使用单独的站点地图提交新闻信息。

在以下情况下,站点地图特别有用:

  • 网站含动态内容。
  • 您的网站中包含在 Googlebot 抓取过程中不易发现的网页,例如含有富 AJAX 或图片内容的网页。
  • 网站为新网站且指向该网站的链接不多。(Googlebot 会跟随链接从一个网页到另一个网页抓取网页,因此,如果您的网站没有很好地链接,我们可能很难发现它。)
  • 网站有大量内容页存档,这些内容页彼此之间没有很好地链接,或根本就没有链接。

Google 不保证一定会抓取所有网址并将其编入索引。但是,我们会使用站点地图中的数据了解网站的结构,这样可以让我们改进抓取工具的计划,并在日后能更好地对网站进行抓取。大多数情况下,网站管理员会因提交站点地图而受益,而决不会为此受到处罚。

 

Google ...

继续阅读

SciPy—Python科学计算包

SciPy介绍

Scipy是一个构建在Numpy基础之上,囊括了许多数学算法和便捷的函数的Python工具包。它通过向用户提供操纵数据和数据可视化的高级指令集和类,为Python会话的交互提供了强有力的支持。使用Scipy,一个交互式的Python会话就变成了一个数据处理和系统原型开发环境,可以媲美MATLAB,IDL,Octave,R-LabSciLab

使用SciPy的另一个好处是它使得一个强大的编程语言可以用于开发复杂的程序和专业化的应用。使用SciPy的科学应用受益于许多全世界各地开发者研发的小众软件。Python程序员所需的所有东西,从并行编程到Web和给予数据的子程序和类都有提供。包括数学库在内的所有这些东西都可以在SciPy中找到。

SciPy的组织

SciPy由涵盖不同科学计算领域的子程序包组成。这些包总结如下:

子程序包 描述
cluster Clustering algorithms
constants Physical ...

继续阅读