mongodb和mysql分别是的开源nosql和关系型数据库。哪一个最适合你的应用?
互联网泡沫时期,用于web应用程序的一种通用软件堆栈是lamp,它最初代表linux(os),apache(web服务器),mysql(关系数据库)和php(服务器编程语言)。mysql是选的数据库,主要是因为它是免费的开源代码,并且具有良好的读取性能,非常适合从数据库动态生成网站的数据映射应用。
之后,代表mongodb(文档数据库),express(web服务器),angularjs(前端框架)和node.js(后端javascript运行时)的mean堆栈开始流行。除其他因素外,mean堆栈很有吸引力,因为您需要了解的唯一语言是javascript。与等效的lamp堆栈相比,它还需要更少的ram。
lamp是传统web开发堆栈,是linux apache mysql和php/python的简称,而mean是mongodb、expressjs,angularjs和node.js。
sql还是nosql?
什么时候需要为新应用程序使用mysql这样的关系数据库?除了对标准sql的明显支持之外,关系数据库本身还强制数据进入具有一致的强类型字段的表格模式,并帮助您避免数据重复,只要您利用了标准化。
如果需要避免丢失数据,可以在创建或修改表时将字段声明为notnull。如果您需要由开放地理空间联盟定义的地理查询,大多数关系数据库都提供了健壮的实现。如果需要全文搜索,大多数关系数据库允许在文本字段上定义反向列表索引,在mysql中称为全文索引。
另一方面,如果您偶尔需要自由格式的文档,mysql和许多其他关系数据库也支持rfc 7159定义的json数据。如果还希望使用xml文档和xpath或xslt,大多数关系数据库都提供了这种功能。
什么时候需要像mongodb这样的文档数据库?如果您的主要用例需要允许自由格式的数据、在文档之间更改类型的字段、随时间变化的模式或嵌套的文档,那么nosql数据库将满足这些要求。此外,如果您的应用程序是用javascript编写的,那么json格式的文档数据库将是一个自然的选择。
行业动态浏览器兼容问题武汉到台州物流专线常州到甘孜物流专线VRising游戏搭建需要什么服务器,宿迁可以用吗?营销型网站建设应该注意哪些问题?做网站建设时要怎样做优化布局?扬州到南安物流专线广州到香河物流专线