草庐IT

mongodb - Mongo 使用 26GB 内存,这很糟糕吗?

我最近尝试对我的mongodb服务器进行基准测试,我猜它们有点过载,这是serverStatus()的结果:SECONDARY>db.serverStatus().mem{"bits":64,"resident":26197,"virtual":161106,"supported":true,"mapped":79994,"mappedWithJournal":159988}所以如果我没理解错的话,MongoDB使用了26GB的内存。如果我的服务器有32GB,并且它只运行mongoDb,那么换一个新服务器并对我的数据进行分片是个好主意吗?? 最佳答案

PHP:序列化对象并将它们粘贴到数据库中以备后用是不是糟糕的设计?

我正在计划和研究我现在从MySQL到MongoDB的转换,我刚刚有一个有趣的想法......我有一堆分层对象需要存储在数据库中。我目前的方法是在一个集合中放置一堆嵌入式文档。他们永远不需要被搜索。仅序列化PHP对象,将它们粘贴到数据库中,然后在我想使用它们时将它们反序列化回PHP对象是否有意义?另一种方法是使用Doctrine作为我的ORM。我的编程直觉告诉我这是糟糕的设计并且有局限性,但我觉得序列化和反序列化会非常快并且消除了对ORM的需要。你怎么看?好设计还是坏设计? 最佳答案 在许多情况下,这会被认为是糟糕的设计,但如果满足以

MySQL 更新性能非常糟糕

我在MySQL上的UPDATE性能非常差,我的更新语句非常基本,例如:UPDATE`tbl_name`SET`field1`='value1',`field2`='value2'..`fieldN`='valueN'WHERE`tbl_name`.`id`=123;值很少(15),所有TEXT类型和WHERE条件只是一个使用id。值是JSON字符串(但这不应该打扰MySQL,它应该将它们视为纯文本)。在“tbl_name”中我有很少的记录(大约4k)。问题是执行这个UPDATE语句我得到了8秒的执行时间(取自MySQL慢查询日志)。我在EC2HighCPUMediumistance上单

mysql - 将邻接表模型和嵌套集模型结合起来是否被认为是糟糕的设计?

我正致力于在MySQL中构建树结构,并且一直在尝试用不同的方式表示数据。但是,无论我怎么切,都有缺点。嵌套集模型让我可以轻松地选择树的整个分支——这是我需要做的。然而,选择节点的直接子节点并不是那么容易。邻接表模型非常适合获取直接子节点,但不适合返回树的整个分支。我想知道,构建这样的树结构有什么特别不好的地方吗:TABLE:TreeIDnamelftrgtparentID所以我所拥有的是邻接表模型和嵌套集模型都在同一个表中。这样我就可以使用/或,这取决于我选择的情况。人们的想法是什么?这是允许的吗?(花生酱和巧克力终于在一起了?)或者这被认为是糟糕的设计?提前致谢

sql - 糟糕的 MySQL 连接性能

我一直在尝试对MySQL中的两个表执行连接,查询将运行一两分钟,然后我用完内存而没有得到结果。我远不是数据库专家,所以我不确定我的查询是否写得不好,是否我的一些MySQL设置配置不当,或者我是否真的应该完全用我的查询做其他事情。仅供引用,数据库位于我本地的机器上。我有一个大表(约200万条记录),其中一列是小表(约3000条记录)的ID。如果这很重要,则ID在大表中不是唯一的,但在小表中是唯一的。我尝试了以下查询的各种形式,但似乎没有任何效果:SELECTbig_table.*,small_table.colFROMbig_tableleftouterjoinsmall_tableon

php - MySQL Left Join、Group By、Order By、Limit = 糟糕的性能

我目前正在开发一个应用程序,允许用户使用各种参数搜索文档数据库并返回一组分页结果。我正在用PHP/MySQL构建它,这不是我常用的开发平台,但到目前为止它已经很棒了。我遇到的问题是,为了返回完整的结果集,我必须在每个表上使用LEFTJOIN,这完全破坏了我的性能。开发数据库的人说我正在使用的查询将返回正确的结果,所以这就是我必须使用的。查询在下面,我绝不是SQL专家,需要一些帮助。我一直在想,将查询拆分成子查询可能会更好?以下是我当前的查询:SELECTd.title,d.deposition_id,d.folio_start,d.folio_end,pl.place_id,p.sur

php - 在表中经常将一列空为 NULL 是不是很糟糕?

表格中NULL经常列为空是否不好?注释表comment_idmember_iduser_id11NULL21NULL31NULL41NULL51NULL61NULL7NULL18NULL19NULL1101NULL 最佳答案 不,它本身并不坏。NULL条目是一种工具,您可以随意使用该工具。现在,在您发布的情况下,您可能会考虑使用不重叠的用户ID和成员(member)ID,并使用一列来存储其中任何一个,但这是您的决定。 关于php-在表中经常将一列空为NULL是不是很糟糕?,我们在Stac

mysql - 为什么 Percona pt-online-schema-change 表现如此糟糕?

我们一直在使用PerconaOSC一段时间以来,在不锁定表的情况下更改我们的mysql模式并且效果很好,通常会在几个小时内向“大型”innodb表(约380万行)添加新列或索引。但是,我尝试的最后一次更新在运行7小时(一夜之间,在我们最安静的时期)后仅完成了40%,估计还需要11小时才能完成(持续增加)。RedHat服务器上所有4GB的可用内存都被使用了——32GB,我们最近从16GB升级了。那么这里发生了什么?为什么占用的时间会突然跳这么高?我们是否刚刚达到percona/mysql/服务器无法应对的某种阈值?是否有任何我们可以调整的配置来提高性能?该表有32列和12个索引(包括主键

php - 在 PHP 中使用 MySQL 查询时,这有那么糟糕吗?

我需要根据用户请求更新很多行。这是一个有产品的网站。我可以...删除该产品的所有旧行,然后遍历字符串构建新的INSERT查询。但是,如果INSERT失败,这将丢失所有数据。在每个循环中执行一个UPDATE。此循环目前迭代超过8个项目,但将来可能会达到15个。这么多的UPDATE听起来不是个好主意。更改数据库架构,并向行添加一个auto_incrementId。然后首先执行SELECT,获取变量中的所有oldrowsid,执行一个INSERT,然后执行DELETEWHEREINSET。这里通常的做法是什么?谢谢 最佳答案 只做更新。如

mysql - MsSQL NEWID 是否像 MySQL Rand() 一样糟糕

根据这篇文章:http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/使用ORDERBYRAND()是个坏主意,因为:Theproblemis,MySQLwillhavetoperformRAND()operation(whichtakesprocessingpower)foreverysinglerowinthetablebeforesortingitandgivingyoujust1row.现在一些工作的家伙,最近发现你可以在使用MsSQL时使用ORDERBYNEWID()(我不太了解)。现在,我的问题