问题标签 [database-engine]

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.

0 投票
9 回答
78934 浏览

sql - 如何编写一个简单的数据库引擎

我有兴趣了解数据库引擎的工作原理(即它的内部结构)。我知道 CS 中教授的大多数基本数据结构(树、哈希表、列表等),并且对编译器理论有很好的理解(并且已经实现了一个非常简单的解释器),但我不明白该怎么做关于编写数据库引擎。我已经搜索了有关该主题的教程,但找不到任何教程,因此我希望其他人可以为我指明正确的方向。基本上,我想了解以下信息:

  • 数据如何在内部存储(即如何表示表等)
  • 引擎如何找到它需要的数据(例如运行 SELECT 查询)
  • 如何以快速高效的方式插入数据

以及可能与此相关的任何其他主题。它不必是磁盘数据库——即使是内存数据库也可以(如果它更容易的话),因为我只想了解它背后的原理。

非常感谢您的帮助。

0 投票
1 回答
211 浏览

sybase - 如何强制表选择遍历块

如何使 Sybase 的数据库引擎以非数字顺序返回未排序的记录列表?

~~~

我有一个问题,我需要在应用程序中重现错误,在该应用程序中我从按顺序生成 ID 的表中进行选择,但 ID 不是选择中的最后一个。

让我解释。

上面是3个ID。我有代码,这些将是

但是,没有检查 status = 'O' (open) 的子句。记住 Sybase 将最后返回的记录保存到一个变量中。

~~~~~

我被要求给测试团队一些会使结果不起作用的东西。如果 Sybase 在无序列表中选择上述内容,它可能会以升序出现,或者,如果数据库引擎需要更改存储数据块或一些技术魔法的东西,则顺序可能会被打乱。最初的错误是当程序返回 1234 而不是 1236 时。

有没有一种方法可以100% 保证Sybase 将搜索一个数据块并且必须加倍返回,有效地“破坏”升序搜索,并且不返回最后一条记录,而是返回任何其他记录?(除了最大值之外的所有记录都会出错,因为它们都是“关闭的”)

我想要某种神奇的 SQL 代码,以确保事情不会以完全数字顺序搜索表。理想情况下,我希望不必更改程序,因为测试团队希望看到完全相同的程序被破坏(就像敲击 aorder by id desc会捏造结果一样简单)。

0 投票
1 回答
3776 浏览

sql-server-2008 - 数据库引擎未出现在 SQL Server 列表中

我不知道我是否在谷歌中搜索错误的查询,但我似乎无法找到答案。我的电脑上安装了 SQL Server 2008,根据 services.msc,我运行了 2 个数据库引擎:SQLEXPRESS(可能是 Visual Studio 附带的一个)和 MSSQLSERVER。当我尝试连接时,服务器名称下拉列表中只显示 SQLEXPRESS。我试图通过输入明确声明 MSSQLSERVER

MYPCNAME\MSSQLSERVER

没用。我可以在 Internet 上找到的最佳解决方案是在 Configuration Manager 中启用内容。也没有工作(尽管我确实发现 TCP/VIA 和所有其他选项都为 MSSQLSERVER 禁用)。

任何人对我接下来应该尝试什么或可能我忽略的事情有任何其他想法?

0 投票
2 回答
11070 浏览

sql-server-express - SQL Server Compact Edition 和 SQL Server Express Edition 有什么区别?

有人可以解释一下 SQL Server Compact Edition 和 SQL Server Express Edition 之间的主要区别是什么吗?

我应该出于什么目的使用这个或那个?

谢谢

0 投票
3 回答
687 浏览

mysql - 社交网站的数据库和数据库引擎

对于具有用户个人资料、实时提要、照片/视频/内容共享等的大量用户内容网站,要使用什么数据库,以及什么数据库引擎?当然,Oracle/Microsoft sql 已经退出,因为它们不是免费的(或便宜的)。我将 MySQL 与 MyISAM 一起使用,但这会在社交网站上遇到性能问题。即使使用 InnoDB 也可能无助于提高性能。那么首先哪个数据库更好用,哪个引擎 - 从免费到付费?

主要关注的是实时提要性能,此外还有大量的数据跟踪和分析挖掘。

由于这是一家初创公司 - 硬件成本有限,因此这里没有硬件农场来支持性能,因此至少在前 2 年寻找一个不错的替代品。

0 投票
4 回答
66497 浏览

mysql - 什么是 MySQL 数据库引擎?

我环顾四周,发现一些 MySQL 引擎是 innodb 和 MyISAM。也许还有一些。我的问题是这些数据库引擎是什么?

不同的 MySQL 引擎有什么区别?更重要的是,我如何决定使用哪一个?

0 投票
2 回答
7461 浏览

sql-server - 通过查询连接到数据库引擎

当您打开 SQL Server Management Studio 时,您通过 UI 连接到数据库引擎。我希望通过 SQL 查询获得相同的功能,例如连接到我们编写的数据库 使用类似的方法来连接到数据库引擎。

0 投票
1 回答
497 浏览

mysql - 用于每个站点的个性化用户访问的 MySQL 结构?

我需要一些帮助来构建一些表,这些表将帮助我以一种良好的个性化方式为每个客户端使用不同的访问名称,并在每个访问级别中使用个性化的允许命令。

因此,考虑客户端 A 已创建站点 Y,他想要创建以下访问组:

  • 管理员(拥有所有访问权限),
  • VIP(可进入房间1),
  • 基本(可以访问休息室),
  • 禁止(根本无法进入)

与客户 A 创建其个性化访问权限的方式相同,我希望我的所有其他客户能够创建他们自己的个性化访问权限,他们可以用自己的语言为其命名任何他们认为合适的名称,然后只需输入他们可以访问的命令处于给定的访问级别。

我有以下表格作为示例(抱歉,这不是数据报,当我做示例时,工作台一直在我身上崩溃,我愿意建议替代方法来创建与工作台一样好或更好的数据报):

  • 客户表:

    /li>
  • 网站表:

    /li>
  • 访问表:

    /li>
  • 站点访问表

    /li>
  • 命令

    /li>

在我的应用程序中,所有命令操作都已预先定义,用户无法更改他们所做的操作或默认名称,但允许他们创建别名。

因此,假设我有命令踢,他们可以创建一个别名,将其命名为“k”或“explosion”,或者他们可以将别名命名为任何他们想要的名称。

我的一些疑问:

  1. 最初,我坚持使用 site_access 将所有内容链接在一起,可以访问站点的客户端及其具有的访问权限以及从他们的访问权限中每个具有哪些命令,这是一个好方法吗?

  2. 我有许多将从数据库中提取的命令,但是由于有些命令有自己的别名,因此我不瘦我可以使用位掩码进行访问,并且如果不为空,我仍然可以查询别名,因此我将不得不使用列表命令还是有好的选择?

  3. 在我的情况下,我应该使用什么引擎,InnoDB 或 MyISAM?

  4. 可以混合引擎还是根本不是一个好主意?

  5. 我应该对当前的表结构进行哪些更改,您是否也可以提供任何示例(如果可能)

更新:

在此处输入图像描述

0 投票
1 回答
4261 浏览

mysql - MySQL 数据库大小估计

我有一个应用程序数据库,其中包含一个用户表(基于计数字段 * typelength 每个用户的数据 1kbyte),以及属于用户的大约 100 个相同大小的事物(每个事物 0.5 kbyte),它位于“用户"表和一个"事物"表。

这似乎会导致每个用户大约 51kbytes 的数据。但是,我听说对于 MySQL,我应该将它加倍以覆盖索引表,这将使我达到 102kbytes/user 是真的吗?MySQL 是否还有其他数据扩展因素需要考虑,或者 102 KB 是一个好的估计值?

除了索引因子(我认为是 2)和存储效率(我也认为是 2)之外,MySQL 中的数据存储还有其他乘数吗?

0 投票
1 回答
1960 浏览

mysql - 哪个数据库存储引擎最适合实现博客?

可能重复:
MySql:MyISAM 与 Inno DB!

我正在使用 MySql 在 php 中实现一个博客。

并非所有引擎都支持特殊字段类型,如 BLOB(二进制大对象)或 TEXT 类型,我需要经常使用它们。

此外,我将非常需要使用外键机制来管理对帖子的评论,以及不同可能的帖子存档。

就效率和功能而言,最好使用哪种数据库存储引擎(MyISAM、InnoDB、..)?