问题标签 [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 投票
1 回答
139 浏览

mysql - 在数据库中保存按视频时间划分的视频观看统计数据

我需要保留一些关于正在观看的视频的统计数据,其中之一是视频的哪些部分被观看最多。我想出的设计是将视频分成 256 个间隔,并为每个间隔保留浮点数。我以用户连续观看的间隔数的形式接收数据。问题是如何存储它们。我看到有两种解决方案。

每个视频片段的行

让我们有一个这样的数据库表:

然后,每当我们必须处理多个视图时,请确保存在相应的数据库行并向views列添加适当的值。SELECT COUNT(*)我发现如果首先处理行的存在(给定视频的行以及INSERT IGNORE是否缺少行)会快得多,然后像这样使用一些更新查询:

然而,这似乎有点臃肿。我想出的另一个解决方案是

每个视频的行,事务中的更新

一张桌子看起来(有点)像这样:

然后,每次需要存储视图时,都会在具有一致快照的事务中完成,顺序如下:

  1. 如果数据库中不存在视频,则创建该视频。
  2. 检索一行heatmap,以二进制形式存储的浮点数组,转换为更易于处理的形式(在 PHP 中)。
  3. 适当增加数组中的值并将数组转换回来。
  4. 通过UPDATE查询更改行。

到目前为止,优势可以总结如下:

第一种方法

  • 将数据存储为浮点数,而不是一些神奇的二进制数组。
  • 不需要事务支持,因此不需要 InnoDB,而且我们目前对所有内容都使用 MyISAM,因此不需要混合存储引擎。(仅适用于我的具体情况)
  • 不需要交易WITH CONSISTENT SNAPSHOT。我不知道这些的性能惩罚是什么。
  • 我已经实现了它并且它有效。(仅适用于我的具体情况)

第二种方法

  • 使用的存储空间要少得多(第一种方法是存储 256 次视频 ID 并存储视频每个片段的位置,更不用说主键了)。
  • 应该更好地扩展,因为 InnoDB 的每行锁定而不是 MyISAM 的表锁定。
  • 通常可能工作得更快,因为发出的请求要少得多。
  • 更容易在代码中实现(尽管另一个已经实现)

所以我该怎么做?如果不是我们系统的其余部分始终使用 MyISAM,我会采用第二种方法,但目前我倾向于第一种。但也许有一些理由支持一种或另一种方法?

0 投票
1 回答
10806 浏览

wcf - 单用户数据库 vs 多用户数据库

单用户数据库和多用户数据库有什么区别?为什么我需要使用单用户数据库?为什么制作它?

如果我有多个线程使用相同的登录凭据同时访问同一个数据库,我是否需要一个多用户数据库?

0 投票
2 回答
2686 浏览

mysql - 如何确定 MySQL 数据库的引擎是文件系统中的 MyISAM 还是 InnoDB?

如何在文件系统中找到 MySQL 数据库引擎(数据结构,不可能有 MySQL 命令)?

如果你能帮助我,那就太好了。

最好的问候,乔尼博伊

0 投票
1 回答
6253 浏览

sql-server - 请告诉我如何在我的本地台式计算机上创建 SQL Server 2008 R2 数据库引擎

我已经在本地台式计算机上安装了 SQL Server 2008 R2。我们使用它连接到网络中的远程 SQL Server 2008 数据库引擎。但是,出于开发目的,我想在我的本地桌面计算机上创建一个 SQL Server 2008 R2 数据库引擎。请告诉我如何在我的本地台式计算机上创建 SQL Server 2008 R2 数据库引擎

0 投票
2 回答
10356 浏览

mysql - 为什么innoDB会锁表

我在 AWS 上使用 innoDB。我的日志中不断收到大量以下消息:

等待表级锁

我以为 innoDB 只做行级锁。我的代码中没有任何锁表。有谁知道为什么会发生这种情况?

0 投票
1 回答
130 浏览

sql-server-2012 - SQL Server SQL 代理

我希望从我的 SQL Server 2012 安装中安排一些脚本。我已经从http://www.microsoft.com/en-us/download/details.aspx?id=43351安装了 SQLManagementStudio_x64_ENU.exe ,因为那是完整版,不是特快的。虽然它没有安装数据库引擎。我回去只安装了 SQLEXPR_x64_ENU.exe 数据库引擎,但是当我去启动 SQL 代理服务时,我收到错误“安装此服务的 SQL Server 版本不支持 SQL Server 代理”

我是否使用了错误的数据库引擎?还是按错误的顺序安装?

0 投票
2 回答
438 浏览

c# - 无法从 Visual C# 将数据插入 MS Access 数据库

只是编程的初学者......我使用一个类来处理连接字符串。

公共类数据库 { public OleDbConnection con = new OleDbConnection(); 公共 OleDbCommand cmd = 新 OleDbCommand();

当我单击按钮时,我得到了“Microsoft JET 数据库引擎”

0 投票
5 回答
2280 浏览

sql - sqlerrorColumn 'tableName' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中

我有三张桌子

表格1:

表 2:

表3:

我正在尝试按顺序返回CustomerID,和CustomerName,但是在使用以下查询时:OrderTypeNameOrderCountCustomerName

我收到错误消息:

我不知道我做错了什么。

0 投票
2 回答
3604 浏览

sql-server-2012 - SQLServer 2012 安装副本显示问题:

我的问题是这样的:我的机器上安装了 SqlServer 2012 的副本。它已经存在了 3 年多,完全没有任何故障。就在 4-5 天前,出现了一个问题。当我启动 Management Studio 时,它告诉我

msdb 已损坏,因此无法打开。

完整的消息是这样的:

无法在服务器级别显示策略健康状态,因为用户没有权限。此功能需要获得数据库 msdb 的权限才能正常工作。

那么这里有什么问题呢?什么突然的变化/异常可能已经使这种情况变得不稳定?有人告诉我,这可能是由于多种可能性。原因可能是任何事情。甚至一些 nuget 包也会影响数据库。最初我认为这可能是登录、权限等问题。所以我也尝试以管理员身份运行。不,它并没有解决这个问题。如果您尝试创建一个新数据库,它只会告诉我,我做不到。消息是这样的:

执行 T-SQL 语句或批处理时发生异常。[Microsoft.SqlServer.ConnectionInfo]。无法打开数据库 msdb。它已被恢复标记为可疑。[Microsoft Sql 服务器,错误:926]

我该如何从中恢复?你能给我一些指导吗?或者是在哪里寻找问题线索的线索?我所有的工作都停滞了。在恢复我生病的 sqlserver 安装方面的任何帮助都将受到欢迎。

所以,我请求你们给我指路。感谢期待。

0 投票
1 回答
2070 浏览

mysql - 为什么 mysql "ENGINE=InnoDB" 不适用于 joomla 3 安装

我在 stackoverflow 中得到了 joomla 3 安装问题(安装卡在创建数据库中)的解决方案。

用“ENGINE=MyIsam”替换“ENGINE=innoDB” 的解决方案

joomla-folder\installation\sql\mysql\joomla.sql, it works well.

任何人都知道 innoDB 无法使用 joomla 3 安装的原因。

我是否需要再次将引擎从“MyIsam”恢复到“innoDB”(成功安装后)?