小编swo*_*eta的帖子

查询IS NULL时,MySQL返回最后插入的内容

每当我在a 之后直接做一个SELECT语句时,我得到最后一个插入的行.WHERE id is NULLINSERT

我正在使用MySQL 5.1.73.

它直接发生在MySQL shell中; 这是我的控制台:

mysql> CREATE TABLE testing (
    ->     id int(11) NOT NULL AUTO_INCREMENT,
    ->     name VARCHAR(200),
    ->     PRIMARY KEY (id)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)

mysql> INSERT INTO testing (name) VALUES ('test');
Query OK, 1 row affected (0.01 sec)

mysql> SELECT * FROM testing WHERE id IS NULL;
+----+------+
| id | name |
+----+------+
|  1 | test |
+----+------+ …
Run Code Online (Sandbox Code Playgroud)

mysql null select insert auto-increment

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

聚合管道因大量收集而变慢

我有一个包含超过 2 亿个文档的集合,其中包含维度(我想要过滤或分组的内容)和指标(我想要求和或从中获取平均值的内容)。我目前正面临一些性能问题,我希望获得一些关于如何优化/扩展 MongoDB 的建议或有关替代解决方案的建议。我正在使用 WiredTiger 运行最新的稳定 MongoDB 版本。这些文件基本上如下所示:

{
  "dimensions": {
    "account_id": ObjectId("590889944befcf34204dbef2"),
    "url": "https://test.com",
    "date": ISODate("2018-03-04T23:00:00.000+0000")
  },
  "metrics": {
    "cost": 155,
    "likes": 200
  }
}
Run Code Online (Sandbox Code Playgroud)

我在这个集合上有三个索引,因为在这个集合上运行了各种聚合:

  1. 帐户ID
  2. 日期
  3. account_id 和日期

以下聚合查询获取 3 个月的数据,汇总成本和喜欢并按周/年分组:

db.large_collection.aggregate(

    [
        {
            $match: { "dimensions.date": { $gte: new Date(1512082800000), $lte: new Date(1522447200000) } }
        },

        {
            $match: { "dimensions.account_id": { $in: [ "590889944befcf34204dbefc", "590889944befcf34204dbf1f", "590889944befcf34204dbf21" ] }}
        },

        {
            $group: { 
              cost: { $sum: "$metrics.cost" }, 
              likes: { $sum: "$metrics.likes" }, 
              _id: { 
                year: …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query aggregation-framework

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