nosql

Fetching details of a group user belongs to in firebase

喜你入骨 提交于 2021-01-27 23:20:33
问题 Below is my database structure in firebase . I only have signed-in users Id. User -userId -Name -age -groups groupId1:true groupId2:true Group -groupId -name -desc -UserId -UserId1:true -UserId2:true I want to list the details of all the groups that user belongs to. My approach is, Find all the groups my user belongs to by checking the index from User. Using the list of groupid we got from step1, get details of group from Groups. Is there any other better suggestions? 回答1: With your current

Row count per each distinct value of the field in Mongoose

﹥>﹥吖頭↗ 提交于 2021-01-27 22:00:44
问题 I have a schema like { reactionType: String, userName: String } (really simplified), and I want to count how many reactions of each type a given user has got. How do I do this with Mongodb and Mongoose? I tried doing MyModel.find({ userName: 'myUser' }).distinct('reactionType').count() and the variations of this, but this seems to count the reaction types present for a given user, not the count of each reaction type for the user. In case this helps to clarify what I want, in SQL I'd do

RavenDB using filter with group by

故事扮演 提交于 2021-01-27 20:01:14
问题 I have a Transaction entity. I can make group by by (CustomerCode, CustomerName) then select CustomerCode and Total(Amount). It is easy. But When I Want to filter AtCreated. I have An Error. Unhandled exception. Raven.Client.Exceptions.InvalidQueryException: Raven.Client.Exceptions.InvalidQueryException: Field 'AtCreated' isn't neither an aggregation operation nor part of the group by key Query: from Transactions group by CustomerCode, CustomerName where AtCreated >= $p0 select CustomerCode,

ScyllaDB 2.1 - Inconsistency with Materialized View

夙愿已清 提交于 2021-01-27 13:40:00
问题 While deciding on the technology stack for my own product, I decided to go with scyllaDB for database due to it's impressive performance. For local development, I setup Cassandra on my Macbook. Considering ScyllaDB now supports (experimental) MV (Materialized View), it made the development easy. For dev server, I'm running ScyllaDB on Ubuntu 16.04 hosted on Linod. I am facing following issues : After a few weeks, one day when I deleted an entry from base table (from ScyllaDB running on Ubuntu

NoSQL概述-从Mongo和Cassandra谈谈NoSQL

强颜欢笑 提交于 2021-01-27 07:21:33
分两部分介绍NoSQL - NoSQL 概览 1. RDBMS VS NoSQL 2. NoSQL 种类 3. NoSQL 的一些名词 - 结合Mongo,Cassandra谈谈NoSQL的设计和应用 1. 部署架构 2. 分片 3. 数据存储与维护 4. 读写分析 5. 数据模型 关系型数据库 VS NoSQL VS New SQL 关系型数据库:元组关系(ER),提供了一套标准的接口,SQL NoSQL: non-relational,Not-Only SQL,致力于解决关系型数据库扩展的问题 New SQL: 结合RDBMS 与NoSQL的优势(还没有看到一个清晰的概念定义) NoSQL 种类 数据模型|相关数据库|典型应用|优势|劣势| ----|:----:|----:|----:|----:| key-value|Redis|缓存|快速查询|存储数据缺乏结构化 列族|Cassandra,Hbase|分布式的文件系统,大规模的数据存储|易于分布式扩展|功能受限 document|Mongo,CouchDB||free-schema|可扩展性查 图|Neo4J|社交网络|利用图结构相关算法|不易扩展 key-value 结构 wide-column(两级映射) document mongo应用 NoSQL 主要概念 1. 不支持事务和join 2. BASE VS ACID

Embedded couchDB

半世苍凉 提交于 2021-01-27 03:50:45
问题 CouchDB is great, I like its p2p replication functionality, but it's a bit larger(because we have to install Erlang) and slower when used in desktop application. As I tested in intel duo core cpu, 12 seconds to load 10000 docs 10 seconds to insert 10000 doc, but need 20 seconds to update view, so total is 30 seconds Is there any No SQL implementation which has the same p2p replication functionality, but the size is very small like sqlite, and the speed is quite good(1 second to load 10000

针对海量数据和高并发的主要解决方案

百般思念 提交于 2021-01-27 02:06:31
一、网站应用背景 开发一个网站的应用程序,当用户规模比较小的时候,使用简单的:一台应用服务器+一台数据库服务器+一台文件服务器,这样的话完全可以解决一部分问题,也可以通过堆硬件的方式来提高网站应用的访问性能,当然,也要考虑成本的问题。 当问题的规模在经济条件下通过堆硬件的方式解决不了的时候,我们应该通过其他的思路去解决问题,互联网发展至今,已经提供了很多成熟的解决方案,但并不是都具有适用性,你把淘宝的技术全部都搬过来也不一定达到现在淘宝的水平,道理很简单。 2.1、海量数据的解决方案: 使用缓存; 页面静态化技术; 数据库优化; 分离数据库中活跃的数据; 批量读取和延迟修改; 读写分离; 使用NoSQL和Hadoop等技术; 分布式部署数据库; 应用服务和数据服务分离; 使用搜索引擎搜索数据库中的数据; 进行业务的拆分; 2.2、高并发情况下的解决方案: 应用程序和静态资源文件进行分离; 页面缓存; 集群与分布式; 反向代理; CDN; 三、海量数据的解决方案 3.1、使用缓存 网站访问数据的特点大多数呈现为“二八定律”:80%的业务访问集中在20%的数据上。 例如:在某一段时间内百度的搜索热词可能集中在少部分的热门词汇上;新浪微博某一时期也可能大家广泛关注的主题也是少部分事件。 总的来说就是用户只用到了总数据条目的一小部分,当网站发展到一定规模,数据库IO操作成为性能瓶颈的时候

postgresql也很强大,为何mysql成为主流?

痞子三分冷 提交于 2021-01-26 19:02:55
今天在知乎上看到一个问题的告赞回答,觉得说的挺好的,转发一下。 作者:大宽宽 链接:https://www.zhihu.com/question/31955622/answer/1625152059 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 mysql和postgres的早期完全是两个极端。mysql更像是个“基本上满足关系数据库语法的大号KV”,对关系型数据库的高级功能支持的很不好。我入行时接触的MySQL 5.1和MyISAM存储引擎,不支持ACID,但有如下几点在当时的互联网公司看来是非常合适: 互联网公司为了扩展,长期的经验是,仅仅把数据库当作是一个“存储”,而非存储+核心数据逻辑的计算节点。大量的计算都在业务服务器上进行,而业务服务器可以无限水平扩展,而无需担心有状态的数据迁移问题; 因为没有提供很多高级功能和数据一致性的保障,mysql对于简单的sql支持的反而更加直接,在速度上有很大的优势; 对于OLTP,完全不需要复杂的数据处理功能。简单的select ... from ... where id = xxx; insert into xxx;update xxx set xxx=xxx where id = xxxx是OLTP的主流功能。基于这些功能的ORM的出现大大的提高了生产效率;对于OLAP

PHP网站开发—网站架构优化性能概念

℡╲_俬逩灬. 提交于 2021-01-25 17:34:38
最开始的网站架构 最初业务量不大,访问量小,此时的架构,应用程序、数据库、文件都部署在一台服务器上,有些甚至仅仅是租用主机空间 1. 应用、数据、文件分离 将应用程序、数据库、文件各自部署在独立的服务器上,并且根据服务器的用途配置不同的硬件,达到最佳的性能效果。 2. 利用缓存改善网站性能 大部分网站访问都遵循28原则,即80%的访问请求,最终落在20%的数据上,所以我们可以对热点数据进行缓存,减少热点数据的访问路径,提高用户体验。缓存实现常见的方式是本地缓存、分布式缓存。当然还有CDN、反向代理。 2.1 本地缓存 本地缓存,顾名思义是将数据缓存在应用服务器本地,可以存在内存中,也可以存在文件,组件。本地缓存的特点是速度快,但因为本地空间有限所以缓存数据量也有限。 2.2 分布式缓存 分布式缓存的特点是,可以缓存海量的数据,并且扩展非常容易,在门户类网站中常常被使用,速度按理没有本地缓存快,常用的分布式缓存是Memcached、Redis。 2.3 反向代理 部署在网站的机房,当用户请求达到时首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户,如果没有缓存数据才会继续访问应用服务器获取,这样做减少了获取数据的成本。 2.4 CDN 假设我们的服务器都部署在杭州的机房,对于浙江的用户来说访问是较快的,而对于北京的用户访问是较慢的

大数据学习 -MYSQL进阶(第一章)

穿精又带淫゛_ 提交于 2021-01-25 10:00:50
文章目录 1 前言 1.1 数据库架构 1.2 监控信息 2 影响数据库的因素 2.1 超高的QPS和TPS 2.2 大量的并发和超高的CPU使用率 2.3 磁盘IO 2.4 网卡流量 2.5 大表 2.5.1 大表对查询的影响 2.5.2 大表对DDL操作的影响 2.5.3 如何处理数据库中的大表 2.6 大事务 2.6.1 什么是事务 2.6.2 事务的原子性(ATOMICITY) 2.6.3 事务的一致性(CONSISTENCY) 2.6.4 事务的隔离性(ISOLATION) 2.6.5 事务的持久性(DURABILITY) 2.6.7 什么是大事务 1 前言 服务器的压力来很大一部分压力来自于数据库的性能,如果没有稳定的数据库及服务器环境,那么服务器很容易出现一些故障甚至是宕机,造成的后果也是不可估量的, 因此数据库的性能优化必不可少。 1.1 数据库架构 一般的数据库架构都是一台主服务器,下面搭载着几个或十几个从服务器进行主从同步,当主服务器宕机之后,需要程序员手动选出一台数据最新的从服务器接替主服务器,然后对新的主服务器进行同步。然而有时候因为从服务器较多,导致这个过程是相当耗时的,并且在这个过程也是对网卡的容量的一个挑战。 1.2 监控信息 QPS & TPS:数值越高越好。 并发量:同一时间处理的请求的数量。 CPU使用率:越低越好。 磁盘IO:读写性能越高越好。