草庐IT

innodb-performance-optimization

全部标签

performance - "nscanned"查询上的 "update"值非常高 - 似乎高于所有索引中所有条目的总和

我在偶尔的更新查询中得到非常高的“nscanned”数字,而“nscannedObjects”相对较低。我从mongodb日志中获取这些数字,作为慢速查询自动记录的一部分(这些更新需要100毫秒到500毫秒之间的任何时间)。更新后的集合有198K个项目,大小刚刚超过100MB。它有许多不同的字段(超过30个),以及这些字段及其组合的31个索引。这是来自MongoDB.log的完整条目-包括查询和结果:2014-09-22T11:55:22.507+0000[conn45755]updatemydatabase.mycollectionquery:{_id:ObjectId('53d13

performance - mongodb - 推荐用于大量数据点的树结构

我正在从事一个项目,该项目记录跨多个地区的商品价格历史记录,并且我计划将数据存储在mongodb集合中。由于我对mongodb比较陌生,所以我很好奇对于大量数据,推荐的文档结构可能是什么。情况是这样的:我正在记录200多个地区的大约90,000件商品的价格历史记录。我希望每小时记录每件商品的价格,并为任何给定商品提供2周的历史记录。结果大约是(90000*200*24*14)~=60亿个数据点,或者每个项目大约67200个。每天将运行一次清理查询以删除超过14天的记录(更具体地说,将其存档到gzip压缩的json/文本文件中)。就我将从中获取的数据而言,我主要对两件事感兴趣:1)特定区

深入探讨MySQL数据库的InnoDB存储引擎架构

文章目录1.InnoDB存储引擎的架构2.InnoDB存储引擎的内存结构2.1.BufferPool缓冲池2.2.ChangeBuffer更改缓冲区2.3.自适应Hash索引2.4.LogBuffer日志缓冲区3.InnoDB存储引擎的磁盘结构3.1.SystemTablespace系统表空间3.2.File-Per-TableTablespaces每个表都有单独的表空间3.3.GeneralTablespaces通用表空间3.4.UndoTablespaces撤销表空间3.5.TemporaryTablespaces临时表空间3.6.DoublewriteBufferFiles双写缓冲区3.

performance - MongoDB:通过嵌套键与顶级键查找

选项1:{_id:ObjectId,text:String,author:{id:ObjectId,name:String,email:String}}选项2:{_id:ObjectId,text:String,authorId:Id,author:{name:String,email:String}}我有一个类似于上面选项1的Post文档架构。有一个单独的“作者”集合,上面的作者ID字段正在引用它。这里重复了“姓名”和“电子邮件”;Authorcollection上有更多的作者信息。我对Post集合的查询之一是查询某个作者ID的所有帖子。就性能而言,是否最好选择选项2,因为作者IDk

MongoDB : multiple specific collections or one "store-it-all" collection for performance/indexing

我正在记录用户在我们网站上进行的不同操作。每个Action都可以是不同的类型:评论、搜索查询、页面View、投票等……这些类型中的每一个都有自己的模式和公共(public)信息。例如:comment:{"_id":(mongoId),"type":"comment","date":4/7/2012,"user":"Franck","text":"Thisisasamplecomment"}search:{"_id":(mongoId),"type":"search","date":4/6/2012,"user":"Franck","query":"mongodb"}etc...基本上,

performance - MongoDB动态排名

我使用MongoDB并有一个包含大约100000个条目的集合。条目包含这样的数据:{"page":"page1","user_count":1400}{"page":"page2","user_count":1100}{"page":"page3","user_count":900}...我想根据user_count输出条目的排名,例如:#1-page1#2-page2#3-page3......到目前为止一切顺利。如果我只输出一个排序列表,我可以简单地使用循环计数器。但我还必须支持各种搜索查询。因此,例如我得到20个结果,并想显示结果的排名。喜欢:#432-page1232#32-p

performance - Mongo 性能

我们的测试工具创建n个线程并在每个线程内执行m次迭代。我们计算最小、平均和最大操作时间。所以我们不时看到mongo执行请求非常慢-最多几秒钟。而且每次第一次操作都是最慢的,我们甚至有意将其排除在统计之外而且avg和max之间的差异仍然很大。正常吗?我可以消除那些缓慢的操作吗?为什么mongo执行某些请求如此缓慢?当我们同时运行插入/获取/删除/更新测试时,单一操作模式和混合模式的结果如下。在混合模式下thread=1意味着我们为每种类型的测试创建了4个线程我们使用默认值-每个主机100个连接来源publicvoidstoreMt(MyTestObjectmyTestObject){mo

python - MongoDB Update-Upsert Performance Barrier(性能跌落悬崖)

作为某些性能评估的一部分,我正在执行重复更新操作以将文档添加到我的MongoDB中。根据我正在执行的更新(w/upserts)的数量,我发现执行时间存在巨大的非线性:在Python中使用以下命令循环...collection.update({'timestamp':x},{'$set':{'value1':y,v1:y/2,v2:y/4}},upsert=True)给我这些结果...500documentupserts2seconds.1000documentupserts3seconds.2000documentupserts3seconds.4000documentupserts6

读高性能MySQL(第4版)笔记20_Performance Schema和其他

1. 线程1.1. MySQL服务端是多线程软件。它的每个组件都使用线程1.2. 每个线程至少有两个唯一标识符1.2.1. 操作系统线程ID1.2.2. MySQL内部线程ID2. 对象类型2.1. OBJECT_TYPE列2.2. EVENT2.3. FUNCTION2.4. PROCEDURE2.5. TABLE2.6. TRIGGER3. PerformanceSchema3.1. 一个经常受到批评的特性3.1.1. 早期版本的MySQL对其的实现不够理想,导致资源消耗较高3.2. 提供了有关MySQL服务器内部运行的操作上的底层指标3.3. 应该启用PerformanceSchema,

MySQL InnoDB 表空间存在(损坏的表空间)

首先:我不是在寻找一种方法来修复可怕的tablespaceexistsInnoDB发现错误here,而是我正在寻找一种方法来防止它!在过去的几周里,我们有一张表从我们的数据库中随机消失,无法重新创建它(因为它给出了一个表空间存在错误)。我们已将其缩小到下表:CREATETABLEproduct_localised(idINT(10)UNSIGNEDNOTNULLAUTO_INCREMENT,product_idINT(10)UNSIGNEDNOTNULL,language_idINT(10)UNSIGNEDNOTNULL,slugVARCHAR(255)COLLATEutf8_unic