AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[storage-engine](dba)

Martin Hope
keezar
Asked: 2022-03-04 13:31:59 +0800 CST

DBMS 中的主要文件组织 - 有序记录的文件(排序文件)

  • 0

“数据库系统基础”,第 3 版。由 Elmasri 和 Navathe 撰写,第 136 页说:

“我们可以根据其中一个字段的值对磁盘上文件的记录进行物理排序 [...]”

这种“物理排序”怎么可能强制执行,尤其是在碎片化方面?大多数数据库使用系统调用将其数据存储在操作系统的文件系统中,只有极少数能够进行原始 i/o。

storage storage-engine
  • 1 个回答
  • 41 Views
Martin Hope
ilos-vigil
Asked: 2020-03-15 03:17:25 +0800 CST

我应该使用什么 MariaDB 存储引擎?

  • 0

我有一个大小约为 170GB 的数据库,行数介于 20.000 - 700.000.000 行之间(取决于表)。目前我正在使用 MyISAM 存储引擎。

就我而言,查询(读取)速度非常重要,但事务性是可选的。

我的 CRUD 操作估计是:

  • 98% 阅读
  • 2% 插入
  • < 1% 更新和删除
mariadb storage-engine
  • 2 个回答
  • 80 Views
Martin Hope
Freedo
Asked: 2019-11-30 14:52:53 +0800 CST

禁用数据库表进行写入,但报告写入成功

  • 2

我管理一个数据库,每天都会创建数千 GB 的无用日志数据。

我无法修复执行所有这些(不必要的)日志记录的软件。有没有办法锁定(或禁用写入)此日志表,使其永远不会被写入,但同时它会报告写入成功,因此不会导致软件出现问题?

我知道我可以用 cronjob 截断表,但我想知道是否有更好的方法?

mariadb storage-engine
  • 1 个回答
  • 179 Views
Martin Hope
NeilWang
Asked: 2017-09-11 01:55:59 +0800 CST

无法将表引擎从 MyISAM 转换为 NDBCLUSTER

  • 0

我在这个线程中遵循了@RolandoMySQLDBA 的提示:mysql,将表从 myisam 更改为 ndb 但我在最后一步没有成功。

我有一个类似的问题,这是我原来的表:

CREATE TABLE `df_modules_metadata_values` (
  `id` mediumint(9) NOT NULL AUTO_INCREMENT,
  `date_added` datetime NOT NULL,
  `date_modified` datetime DEFAULT NULL,
  `uid` mediumint(9) NOT NULL,
  `share_id` mediumint(9) DEFAULT NULL,
  `file_id` mediumint(9) NOT NULL,
  `field_id` mediumint(9) NOT NULL,
  `val` text CHARACTER SET utf8,
  PRIMARY KEY (`id`),
  KEY `date_added` (`date_added`),
  KEY `uid` (`uid`,`file_id`,`field_id`),
  KEY `file_id` (`file_id`,`field_id`),
  KEY `uid_2` (`uid`,`field_id`),
  KEY `val` (`val`(100)),
  KEY `field_id` (`field_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

如果我简单地转换它,它会给我这个错误:

mysql> alter table df_modules_metadata_values engine=ndbcluster;
ERROR 1073 (42000): BLOB column 'val' can't be used in key specification with the used table type

这是我尝试过的:

mysql> show table status where name='df_modules_metadata_values';
+----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| Name                       | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation       | Checksum | Create_options | Comment |
+----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
| df_modules_metadata_values | MyISAM |      10 | Dynamic    |    0 |              0 |           0 | 281474976710655 |         2048 |         0 |              1 | 2017-09-10 18:00:21 | 2017-09-10 18:00:21 | NULL       | utf8_unicode_ci |     NULL |                |         |
+----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
1 row in set (0.00 sec)

mysql> alter table df_modules_metadata_values rename df_modules_metadata_values_old;
Query OK, 0 rows affected (0.00 sec)

mysql> create table df_modules_metadata_values select * from df_modules_metadata_values_old where 1=2;

Query OK, 0 rows affected, 1 warning (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> alter table df_modules_metadata_values add column val100 char(100) after val;
Query OK, 0 rows affected, 1 warning (0.39 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> alter table df_modules_metadata_values add unique index (val100);
Query OK, 0 rows affected (0.33 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> alter table df_modules_metadata_values engine=ndbcluster;
Query OK, 0 rows affected, 1 warning (0.49 sec)
Records: 0  Duplicates: 0  Warnings: 1

mysql> show table status where name='df_modules_metadata_values';
+----------------------------+------------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------------+----------+----------------+---------+
| Name                       | Engine     | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation         | Checksum | Create_options | Comment |
+----------------------------+------------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------------+----------+----------------+---------+
| df_modules_metadata_values | ndbcluster |      10 | Dynamic    |    0 |              0 |           0 |               0 |            0 |         0 |           NULL | NULL        | NULL        | NULL       | latin1_swedish_ci |     NULL | partitioned    |         |
+----------------------------+------------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+-------------+-------------+------------+-------------------+----------+----------------+---------+
1 row in set (0.00 sec)

现在我很难完成你的最后一步,我不明白他们的意思,如何完成“插入”这一步?为什么我们需要这样做?

更何况,在我操作的过程中,我可以看到一些警告,我该如何检查它们?

谢谢!

mysql storage-engine
  • 2 个回答
  • 561 Views
Martin Hope
ng.newbie
Asked: 2017-01-11 02:57:09 +0800 CST

MongoDB - 无法将 mongodb 存储引擎更改为 WiredTiger

  • 5

我已经在 Ubuntu 14.04 中安装了 MongoDB,但我无法将其存储引擎更改为 WiredTiger。

我已在 /etc/mongod.conf 文件中添加了必要的更改,如下所示:

storage:
  dbPath: /var/lib/mongodb
  journal:
    enabled: true
  engine: wiredTiger

我已经使用以下命令启动了 mongod 进程:

mongod -f /etc/mongod.conf

服务器启动了,但是当我连接到我的 shell 时仍然收到警告:

2017-01-10T15:36:54.866+0530 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

我在这里错过了什么吗?这些更改似乎没有效果。

mongodb storage-engine
  • 2 个回答
  • 16813 Views
Martin Hope
felix
Asked: 2016-11-01 01:59:50 +0800 CST

mongodb inMemory 引擎在社区版中可用吗?

  • 0

我目前正在使用 MongoDB 3.2.10,最近听说了新的“inMemory”引擎。经过一番研究,我发现它在 3.2.6 版之后的企业版中可用,但我在社区版中找不到任何关于最终发布的信息。

那么问题来了:他们是否计划发布社区版的 inMemory 引擎?如果他们这样做,我们知道什么时候吗?

mongodb storage-engine
  • 1 个回答
  • 1897 Views
Martin Hope
Courtney
Asked: 2016-06-23 09:32:42 +0800 CST

MongoDB 存储引擎

  • 1

如何永久更改MongoDB的存储引擎,这样我就不必每次都指定存储引擎而不必运行mongod ?我在 Windows 7 32 位上使用 shell 版本 3.2.7。我收到一条错误消息:

28663 无法启动服务器。默认存储引擎“wiredTiger”不适用于此 mongod 版本。请明确指定不同的存储引擎,例如--storageEngine=mmapv1.,终止。

还有人知道我完成工作后如何干净地关闭服务器吗?我使用Ctrl+C但它会导致错误,然后我必须清空数据文件夹才能让进程重新开始。

mongodb-3.0 storage-engine
  • 1 个回答
  • 716 Views
Martin Hope
Pablo Matias Gomez
Asked: 2016-05-04 15:39:26 +0800 CST

当必须更新行时,数据库是否会进行删除和插入?

  • 15

所以今天一位教授告诉我们,当数据库必须进行更新时,在内部(在低级别)它会先删除,然后再插入更新的字段。然后他说这是所有数据库都做的事情,然后我开始讨论说我认为这没有意义,但我没有足够的资源来支持我的立场。他似乎知道很多,但我不明白为什么 dbs 会那样做。

我的意思是,我知道如果您更新一个字段并且您需要更多空间来存储该行,那么它可能会物理删除该行并将其放在新数据的末尾。但是,例如,如果您减少使用的空间,为什么要删除并在最后重新插入呢?

这是真的吗?有什么好处?

update storage-engine
  • 1 个回答
  • 1732 Views
Martin Hope
Buzut
Asked: 2015-11-16 10:52:35 +0800 CST

MongoDB MMAPv1 vs WiredTiger 存储引擎

  • 26

在 mongoDB3 中出现了一个新的存储引擎:WiredTiger。然而,MMAPv1仍然是 Mongo 的默认选择。

一个可能并不比另一个更好,这通常是用例和为工作​​选择正确工具的问题。但是哪个引擎适合什么工作呢?

事实上,虽然 MMAPv1 是默认引擎,但 WiredTiger 似乎在几乎所有领域都更好。它具有与 MMAPv1 相同的功能以及:

  • 更好的写入性能,
  • 文档级并发,
  • 压缩,
  • 快照和检查点系统。

我在MongoDB 的博客上找到了一个比较表:

WiredTiger 和 MMAPv1 比较

因此,除非您使用 Solaris,否则是否有理由不选择 WiredTiger?


编辑

这里有两个视频详细解释了 WiredTiger和MMAPv1的内部结构。

mongodb storage-engine
  • 3 个回答
  • 23615 Views
Martin Hope
Kaushal
Asked: 2015-03-19 22:09:41 +0800 CST

MongoDB 3.0:在集合或数据库级别配置存储引擎

  • 6

我知道我们可以在启动 mongod 时将存储引擎配置为实例级别的wiredTiger。

但是我们也可以为不同的集合或数据库选择不同的存储引擎吗?

mongodb storage-engine
  • 1 个回答
  • 4503 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve