问题标签 [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.
mysql - 在数据库中保存按视频时间划分的视频观看统计数据
我需要保留一些关于正在观看的视频的统计数据,其中之一是视频的哪些部分被观看最多。我想出的设计是将视频分成 256 个间隔,并为每个间隔保留浮点数。我以用户连续观看的间隔数的形式接收数据。问题是如何存储它们。我看到有两种解决方案。
每个视频片段的行
让我们有一个这样的数据库表:
然后,每当我们必须处理多个视图时,请确保存在相应的数据库行并向views
列添加适当的值。SELECT COUNT(*)
我发现如果首先处理行的存在(给定视频的行以及INSERT IGNORE
是否缺少行)会快得多,然后像这样使用一些更新查询:
然而,这似乎有点臃肿。我想出的另一个解决方案是
每个视频的行,事务中的更新
一张桌子看起来(有点)像这样:
然后,每次需要存储视图时,都会在具有一致快照的事务中完成,顺序如下:
- 如果数据库中不存在视频,则创建该视频。
- 检索一行
heatmap
,以二进制形式存储的浮点数组,转换为更易于处理的形式(在 PHP 中)。 - 适当增加数组中的值并将数组转换回来。
- 通过
UPDATE
查询更改行。
到目前为止,优势可以总结如下:
第一种方法
- 将数据存储为浮点数,而不是一些神奇的二进制数组。
- 不需要事务支持,因此不需要 InnoDB,而且我们目前对所有内容都使用 MyISAM,因此不需要混合存储引擎。(仅适用于我的具体情况)
- 不需要交易
WITH CONSISTENT SNAPSHOT
。我不知道这些的性能惩罚是什么。 - 我已经实现了它并且它有效。(仅适用于我的具体情况)
第二种方法
- 使用的存储空间要少得多(第一种方法是存储 256 次视频 ID 并存储视频每个片段的位置,更不用说主键了)。
- 应该更好地扩展,因为 InnoDB 的每行锁定而不是 MyISAM 的表锁定。
- 通常可能工作得更快,因为发出的请求要少得多。
- 更容易在代码中实现(尽管另一个已经实现)。
所以我该怎么做?如果不是我们系统的其余部分始终使用 MyISAM,我会采用第二种方法,但目前我倾向于第一种。但也许有一些理由支持一种或另一种方法?
wcf - 单用户数据库 vs 多用户数据库
单用户数据库和多用户数据库有什么区别?为什么我需要使用单用户数据库?为什么制作它?
如果我有多个线程使用相同的登录凭据同时访问同一个数据库,我是否需要一个多用户数据库?
mysql - 如何确定 MySQL 数据库的引擎是文件系统中的 MyISAM 还是 InnoDB?
如何在文件系统中找到 MySQL 数据库引擎(数据结构,不可能有 MySQL 命令)?
如果你能帮助我,那就太好了。
最好的问候,乔尼博伊
sql-server - 请告诉我如何在我的本地台式计算机上创建 SQL Server 2008 R2 数据库引擎
我已经在本地台式计算机上安装了 SQL Server 2008 R2。我们使用它连接到网络中的远程 SQL Server 2008 数据库引擎。但是,出于开发目的,我想在我的本地桌面计算机上创建一个 SQL Server 2008 R2 数据库引擎。请告诉我如何在我的本地台式计算机上创建 SQL Server 2008 R2 数据库引擎
mysql - 为什么innoDB会锁表
我在 AWS 上使用 innoDB。我的日志中不断收到大量以下消息:
等待表级锁
我以为 innoDB 只做行级锁。我的代码中没有任何锁表。有谁知道为什么会发生这种情况?
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 代理”
我是否使用了错误的数据库引擎?还是按错误的顺序安装?
c# - 无法从 Visual C# 将数据插入 MS Access 数据库
只是编程的初学者......我使用一个类来处理连接字符串。
公共类数据库 { public OleDbConnection con = new OleDbConnection(); 公共 OleDbCommand cmd = 新 OleDbCommand();
当我单击按钮时,我得到了“Microsoft JET 数据库引擎”
sql - sqlerrorColumn 'tableName' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中
我有三张桌子
表格1:
表 2:
表3:
我正在尝试按顺序返回CustomerID
,和CustomerName
,但是在使用以下查询时:OrderTypeName
OrderCount
CustomerName
我收到错误消息:
我不知道我做错了什么。
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 安装方面的任何帮助都将受到欢迎。
所以,我请求你们给我指路。感谢期待。
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”(成功安装后)?