gpt4 book ai didi

mysql - 大量选择的存储引擎

转载 作者:太空宇宙 更新时间:2023-11-03 12:24:57 24 4
gpt4 key购买 nike

背景

我正在使用圣经创建一个 API,我希望能够尽可能多地消除数据库瓶颈。我的数据相当去规范化以消除大多数不必要的连接。

信息

鉴于圣经的经文没有改变,我几乎不会做任何INSERT 语句。我只会在添加新翻译时插入数据,这会定期发生,但我不关心这里的速度。

但是,我将执行大量 SELECT 语句。

我不需要任何跨国的、符合 ACID 的特性。我最关心的是速度。

问题

适合这些条件的理想 MySql 存储引擎是什么?

我知道每个引擎的基础知识(我猜 MyISAM 是最理想的),所以我正在寻找一个可以用统计数据或进一步推理证明深厚知识支持的答案其中一些引擎。

尽管使用 NoSQL 可能比 RDBMS 更好,但这不是我要查找的信息。

最佳答案

圣经的文件大小很小。正如你所说,不会改变。

要获得最佳读取性能,请考虑内存。这有你不能使用文本/blob 的限制。但是,如果您的数据被分成 65,533 个字符 block ,您就可以了。

http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html

使用内存还意味着如果断电/服务器重新启动,所有数据都会丢失。因此定期写入磁盘将很有用,并且在重新启动时您将需要再次填充该表。

尽管所有表都存储在 RAM 中,但与其他方法相比,您将需要额外的 RAM 才能使用此方法

来自评论中的问题。

文档说

To populate a MEMORY table when the MySQL server starts, you can use the --init-file option. For example, you can put statements such as INSERT INTO ... SELECT or LOAD DATA INFILE into this file to load the table from a persistent data source. See Section 5.1.3, “Server Command Options”, and Section 13.2.6, “LOAD DATA INFILE Syntax”.

http://dev.mysql.com/doc/refman/5.5/en/memory-storage-engine.html#idp82809968

http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_init-file

同样,如果有任何更改,您将需要使该文件保持最新。 (可以用一个mysqldump来维护)

关于mysql - 大量选择的存储引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085129/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com