问题标签 [storage-engines]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 数据库(MySql)与引擎(InnoDB)的关系?
有 1000 万篇文章将 MyISAM 与 InnoDB(两个所谓的数据库引擎)进行比较,维基百科模糊地定义为:
“ ...数据库管理系统 (DBMS) 用于从数据库中创建、读取、更新和删除 (CRUD) 数据的底层软件组件。 ”
但这究竟意味着什么?令人惊讶的是,我找不到一篇谈论数据库与其引擎的关系的文章!
引擎如何在具体的现实世界中表现出来?数据库真的只是一个二进制文件,它的“引擎”是.exe
处理文件的所有 I/O 吗?引擎是否处理EXPLAIN
AND QEP?
我想我要问的是:您如何定义哪些职责是 MySQL 的,哪些活动是其底层引擎的职责?
mysql - 是否可以在没有任何或所有 MyISAM、MERGE、MEMORY 或 CSV 引擎的情况下从源代码编译 MySQL。
是否可以在没有任何或所有 MyISAM、MERGE、MEMORY 或 CSV 存储引擎的情况下从源代码编译 MySQL。
http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html#option_cmake_storage_engine_options上的文档说这些存储引擎是强制性的,但它也提到了该-DWITHOUT_XXX_STORAGE_ENGINE=1
选项。
让我知道是否可以直接或通过源代码中的任何调整来排除任何这些存储引擎。另外,我无法弄清楚如何使用-DWITHOUT_XXX_STORAGE_ENGINE=1
选项。我正在通过命令构建源代码
从 MySQL 源代码父目录。
mysql - 未知变量“默认存储引擎=myisam”
我正在尝试配置 Mysql(版本 14.15 Distrib 6.0.8-alpha,适用于 Win64)以使用 MyISAM 作为 Windows 7 上的默认存储引擎。我创建了 C:\my.cnf,其内容如下:
在重新启动 mysql 服务并尝试从控制台运行 mysql 后,我收到以下错误消息:
我一直在学习教程,并将上面的内容直接复制并粘贴到我的 my.cnf 文件中。
我尝试了以下组合:
php - 用于 PHP 会话存储的最佳 MySQL 存储引擎
我想使用 MySQL 来存储会话变量。据我了解,这意味着在每个页面请求上都会对表进行一次读取和一次写入。
哪种 MySQL 存储引擎最适合这项任务?MyISAM、InnoDB、MariaDB(我在 PHPMyAdmin 中看不到)、内存或其他完全?
mysql - 网页游戏平台的 Node.js 数据库
我正在使用 node.js 构建一个网络游戏平台/商店,并且我一直在研究存储游戏数据的方法。游戏数据将包括基本信息和关键字列表。
我首先研究了 MyISAM 和 InnoDB 存储引擎之间的差异。InnoDB 似乎是最合适的选择,因为我希望操作锁定在行级别而不是表级别。但是,我还发现 FULLTEXT 搜索仅适用于 MyISAM 表。
我的第一个问题是这个。是否有适合我的两个要求的 MySQL 存储引擎(同时操作不同行的能力,以及像在任何商店中搜索特定关键字的表的能力)?
此外,如果第一个问题的答案是否定的,是否有其他数据库软件(MySQL 的替代品)可以满足我的要求并在 node.js 上支持开箱即用或使用插件?
无论我使用什么,它都需要快速执行读取,因为很多人可能同时访问同一个游戏(因此访问表中的同一行)。
codeigniter - 从存储引擎收到错误 28
我的网站使用 CodeIgnter 框架和 iPage 主机。之前,我的 PHP 版本是 5.2,然后我更新到 5.3。在我更新到 PHP 5.3 后总是得到如下错误:
这不是 StackOverflow 中的新问题,但我想确保:
- 这些错误是我从 PHP 5.2 更新到 5.3 造成的吗?
- 它是由我在 php.ini 中的错误配置引起的吗?
- 从托管?或任何其他人?
text - 哪种方法是持久化字符串以检索文本跨度的最有效方法?
我需要一种在磁盘上只存储一个大文本而不将其完全加载到内存中的方法。
我的查询是文本跨度的形式,例如:给我位置 x 和位置 x + n 之间的所有文本,不多也不少。我没有经常更改文本。
可能我需要像“持久” B-Tree 这样的东西。
它还需要一些 DBMS 功能,例如:
- 客户端/服务器架构
- 缓存系统
谢谢
mysql - MySQL架构优化——MySQL集群
g我正在开发一个具有以下结构的 Web 应用程序:我们有“客户”,每个客户都有自己的“用户”。每个客户(以及他的用户和其他数据)都与其他客户完全分离,并且他们之间没有共享数据。
此外,每个“客户”都有不同的子网站,所有来自那里的查询(无论是他还是他的用户)都将始终引用一个 customer.id
数据库按以下方式构建:
我有很多表,比如“blogPost”,它们通过用户连接到客户。
一个常见的查询是这样的:
值得注意的是,这些连接很昂贵而且真的没有必要——因为当我们进入一个子网站时,我们只对连接到特定客户的数据感兴趣
所以问题是如何改进数据库?我对这个主题阅读得越多,我就越困惑——NDB
(MySQL 集群)存储引擎是要走的路吗?
是否最好为每个客户创建许多不同的数据库?也许添加一个冗余customerID
字段blogPost
?还有什么想法?MongoDB?!
mysql - 将现有表从 MyISAM 移动到 InnoDB,哪个更快?
一个数据库已经有多达 25-30 个表并且都是MyISAM。这些表中的大多数都相互关联,这意味着许多查询使用 ID 上的连接并检索数据。
其中一个表包含7-10 百万条记录,如果我想执行搜索或更新甚至检索所有数据,它会变得很慢。现在我向我的老板提出了一个解决方案,说将表转换为 InnoDB 可能会提供更好的性能。
我还解释了 InnoDB 的好处:
由于我们无论如何都在键上连接多个表并且它们是相关的,因此最好使用外键并拥有可以避免Orphan Rows的关系数据库。我在其中一张大表中发现了大约10-15k孤立行,不得不手动删除它们。
支持事务,我们不时执行大更新,如果其中一个失败,我们必须用备份的表替换整个表并再次运行更新以确保所有查询都已执行。使用 InnoDB,如果查询 2 失败,我们可以恢复查询 1 的任何更改。
现在我从老板那里得到的回应是我需要证明 InnoDB 会比 MyISAM 运行得更快。我的问题是,以上两件事不会通过消除孤立行来提高应用程序本身的速度吗?
一般来说,MyISAM 比 InnoDB 快吗?
注意:使用 MySQL 5.5
mysql - 用于大量选择的存储引擎
背景
我正在使用圣经创建一个 API,我希望能够尽可能多地消除数据库瓶颈。我的数据是相当反规范化的,以消除大多数不必要的连接。
信息
鉴于圣经的文字没有改变,我几乎不会做任何INSERT
陈述。我插入数据的唯一时间是添加新翻译时,这会定期发生,但我不关心这里的速度。
然而,我会做大量的 SELECT
陈述。
我不需要任何跨国的、符合 ACID 的功能。我最关心的是速度。
问题
适合这些条件的理想 MySql 存储引擎是什么?
我知道每个引擎的基础知识(我的猜测MyISAM
是理想的),所以我正在寻找一个可以用统计数据或进一步推理证明对其中一些引擎有深入了解的答案。
尽管 usingNoSQL
可能比 a 更好RDBMS
,但这不是我要寻找的信息。