小编Ali*_*eza的帖子

为什么 MongoDB 在某些查询上如此缓慢,而使用 IXSCAN 作为获胜计划?

我的数据库有大约 30M 记录,集合大小约为 100GB(总文档和索引)。

\n\n

我有一个复合索引,可以根据 user_id 和其他一些字段(例如:is_activeis_logged_in等)过滤数据。

\n\n

我发现MongoDB Compass查询速度很慢,大约需要 10 秒、20 秒甚至 40 秒!我运行了完全相同的查询,并且在不到 500 毫秒的时间内获取结果(尽管它可能会在第二次尝试时被缓存)。

\n\n

当我获得该持续统计op数据时,我会看到以下锁定状态:

\n\n
 "lockStats": {\n         "Global": {\n             "acquireCount": {\n                 "r": 574\n             }\n         },\n         "MMAPV1Journal": {\n             "acquireCount": {\n                 "r": 295\n             },\n             "acquireWaitCount": {\n                 "r": 2\n             },\n             "timeAcquiringMicros": {\n                 "r": 15494\n             }\n         },\n }\n
Run Code Online (Sandbox Code Playgroud)\n\n

acquireCount:与具有以下状态的快速查询(在另一个集合上)相比,操作在指定模式下获取锁的次数如此之高:

\n\n
"lockStats": {\n         "Global": {\n             "acquireCount": {\n                 "r": 2\n             }\n         },\n         "MMAPV1Journal": {\n             "acquireCount": {\n                 "r": 1\n             }\n         },\n …
Run Code Online (Sandbox Code Playgroud)

performance index mongodb query-performance

5
推荐指数
1
解决办法
6072
查看次数

MongoDB SSL 对等证书验证失败:无法获取颁发者证书

我已经MongoDB通过可选的 SSL 连接启用了 SSL :preferred.

我曾经lets encrypt为了获取SSL证书而使用过。SSLs 按预期工作,在mongod.log文件中我可以看到:

2018-06-02T06:46:26.664+0000 I NETWORK  [listener] connection accepted from MY_SERVER_IP:45442 #2953818 (121 connections now open)
2018-06-02T06:46:26.664+0000 I NETWORK  [conn2953818] SSL mode is set to 'preferred' and connection 2953818 to MY_SERVER_IP:45442 is not using SSL.
Run Code Online (Sandbox Code Playgroud)

现在在同一台主机上,我尝试使用如下 mongo 客户端命令连接到 mongo:

mongo --ssl --host mongo.example.com --sslPEMKeyFile /etc/ssl/mongo.pem --sslCAFile /etc/ssl/ca.pem
Run Code Online (Sandbox Code Playgroud)

当我使用SSLmongo 时出现错误:

MongoDB shell version v3.6.2
connecting to: mongodb://mongo.example.com:27017/
2018-06-02T06:48:34.156+0000 E NETWORK  [thread1] SSL peer certificate validation failed: …
Run Code Online (Sandbox Code Playgroud)

mongodb ssl

5
推荐指数
1
解决办法
1万
查看次数

RDBMS 中的错误有多少开销?

我的项目中有一个课程。在课堂上我需要做两个内部选择,以知道是否有任何重复,但我认为如果我得到重复错误然后管理它比选择更好。错误开销 Vs。两个内选,哪个?

rdbms error-handling

4
推荐指数
1
解决办法
337
查看次数

Char(0) 列上的 count(id) 不起作用!

可能的重复:
select count(*) 和 select count(any_non_null_column) 之间有什么区别?

我有一个类型为 char(0) 的列。有些行是NULL,有些是空的('')。问题是,当我运行以下查询时,结果将为 0。 SELECT count(id) FROM test WHERE id IS NULL

但是当我运行以下查询时,结果是正确的:SELECT count(*) FROM test WHERE id IS NULL

我有一个专栏,为什么会这样?

mysql-5

3
推荐指数
1
解决办法
129
查看次数

我应该使用 WHERE NOT EXISTS 还是 LEFT JOIN 来获取关系表的 ID?

我有users表:

CREATE TABLE `users` (
 `uid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
 `email` varchar(70) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
 `flname` varchar(60),
 PRIMARY KEY (`uid`)
) ENGINE=InnoDB
Run Code Online (Sandbox Code Playgroud)

还有一个关系表:

CREATE TABLE `relationship` (
 `rid` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `from` mediumint(8) unsigned NOT NULL,
 `to` mediumint(8) unsigned NOT NULL,
 PRIMARY KEY (`rid`),
 UNIQUE KEY `from_2` (`from`,`to`),
 KEY `to` (`to`),
 CONSTRAINT `relationship_ibfk_1` FOREIGN KEY (`from`) REFERENCES `users` (`uid`) ON DELETE CASCADE ON UPDATE CASCADE,
 CONSTRAINT `relationship_ibfk_2` FOREIGN KEY (`to`) REFERENCES …
Run Code Online (Sandbox Code Playgroud)

mysql

3
推荐指数
1
解决办法
4835
查看次数

如何有效地从 Postgres 查询以选择特殊词?

假设我有一个words包含非常多记录的表。
列是idname

words我的表格中,例如:

 'systematic', '????','gear','synthesis','mysterious', etc.  
Run Code Online (Sandbox Code Playgroud)

注意:我们也有 utf8 字样。
如何有效地查询,看看哪些词包含字母's''m''e'(所有的他们)?

输出将是:

systematic,mysterious
Run Code Online (Sandbox Code Playgroud)

我不知道如何做这样的事情。它应该是高效的,否则我们的服务器会受到影响。

postgresql select pattern-matching unaccent

3
推荐指数
1
解决办法
3178
查看次数

对于768M RAM服务器在my.cnf中是617M配置好还是不好?

我有一个写入密集型的网络应用程序,我买了一个 768M RAM 的 VDS

  • 这是 my.cnf 适合我的目的吗?

我将 bulk_insert_buffer_size 指定为 126M,其他一些参数如下:

[mysqld]
bulk_insert_buffer_size=126M
set-variable = max_connections=500
safe-show-database
max_user_connections=200
key_buffer_size = 16M
query_cache_size = 50M
tmp_table_size = 50M
max_heap_table_size  = 200M
thread_cache_size = 4
table_cache = 80
thread_concurrency = 8
innodb_buffer_pool_size = 100M
innodb_log_file_size = 25M
query_cache_limit = 50M
innodb_flush_log_at_trx_commit = 2
Run Code Online (Sandbox Code Playgroud)

mysql mysql-5 my.cnf

1
推荐指数
1
解决办法
560
查看次数