热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql此架构听起来是否更适合面向文档的数据存储或关系式?

免责声明:让我知道这个问题是否更适合serverfault.com我想存储有关音乐的信息,特别是:类型艺术家专辑歌曲此信息将在Web应用程序中使用,我希望人们能够看到与专辑

免责声明:让我知道这个问题是否更适合serverfault.com

我想存储有关音乐的信息,特别是:

>类型
>艺术家
>专辑
>歌曲

此信息将在Web应用程序中使用,我希望人们能够看到与专辑关联的所有歌曲,与艺术家关联的专辑以及与流派关联的艺术家.

我目前正在使用MySQL,但是在决定切换之前,我想知道:

>水平缩放有多容易?
>是否比基于SQL的解决方案更容易管理?
>我想要存储的上述数据是否太难于不使用模式?
>当我想到联想时,我立即想到了RDBMS.数据可以存储在CouchDB之类的东西中,但是仍然具有如上所述的某种关联吗?
>我的Web应用程序需要复制,CouchDB或其他应用程序处理得如何?

解决方法:

这种信息非常适合于文档数据库.与许多现实世界数据一样,它并不是天生的关系,因此将其角化为关系模式会带来麻烦(即使使用ORM,我还是从经验中讲). Ubuntu已经在其One product中使用CouchDB来存储音乐元数据以及其他内容.

其余问题一一解答:

>水平缩放比RDBMS更容易.这是Facebook,Digg和LinkedIn等大型网站使用或正在积极研究无模式数据库的众多原因之一.例如,借助称为Eventual Consistency的概念,分片(将数据划分到系统中的不同节点上)可以很好地工作.即,数据可能在一段时间内在各个节点之间不一致,但最终将解析为一致状态.
>这取决于您所说的“管理”的意思…安装通常快速且容易完成.没有用户帐户可以配置和保护(通常在应用程序的业务逻辑层中完成此操作).实时处理文档数据库可能会很有趣:例如,CouchDB中没有临时查询.您必须使用Futon UI或通过HTTP请求与其通信.但是,MongoDB不支持即席查询.
>我不应该这样. Bastien的答案提供了一个JSON文档序列化一些数据的很好的例子.无模式数据库的优点在于,一个文档中可能缺少字段,而另一文档中却存在字段,或者文档之间可以完全不同.这消除了与RDBMS的null值有关的许多问题,这些问题是多种多样的.
>是的;关联存储为嵌套文档,这些文档在您的应用程序中被解析为对象引用,集合等.在Bastien的答案中,“歌曲”键标识一系列歌曲文档.
>这与您关于水平缩放的第一个问题非常相似(水平缩放和复制是交织在一起的).正如CouchIO博客文章Bastien提到的那样,“复制…从一开始就被植入CouchDB中.”我的理解是,所有文档数据库都能很好地处理复制,并且比在RDBMS中进行设置更容易.

如果您决定要将歌曲文件本身与元数据一起存储,则也可以通过将歌曲文件作为文档的附件提供在CouchDB中进行.此外,这样做不会导致任何模式不一致,因为没有模式!

我希望我在这里没有犯太多错误.我本人对记录DB还是很新的.


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
author-avatar
初吻给了烟200309
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有