数据库管理员

希望提高数据库技能并向社区中的其他人学习的数据库专业人员的问答

3
在什么时候每个客户端只能使用一个数据库?
对于我们的系统之一,我们拥有敏感的客户端数据,并将每个客户端的数据存储在单独的数据库中。该系统大约有10-15个客户端。 但是,我们正在开发一个新的系统,它将具有50-100个客户端,也许还会更多。我认为在这种情况下,每个客户端只有一个数据库(存储敏感记录和审核历史记录)可能是不可行的。但是我不知道这是否完全正常,或者是否存在另一种维护安全性的方法。 有什么想法吗?

2
适用于MySQL的Amazon RDS与在Amazon EC2实例上安装MySQL
在工作中,我们将所有Web服务器托管在Amazon EC2上,通常使用与Apache Web服务器安装在同一盒子上的MySQL数据库,并通过进行通信localhost。现在,我们需要将数据库迁移到我们系统之一的自己的服务器上。我可以选择两种解决方案:使用Amazon RDS,或仅启动一个新的Amazon EC2盒并在其上安装MySQL。 作为与EC2相同的公司提供的专用数据库服务,RDS似乎应该是显然更好的选择。但是,当我查看这两个选项的价格时(请参见http://aws.amazon.com/ec2/pricing和http://aws.amazon.com/rds/pricing),似乎RDS服务器的成本几乎是对于具有相同规格的设备,其容量是EC2服务器的两倍。 鉴于我自己能够处理备份,并且EC2提供了与RDS相同的按比例扩展实例的能力,因此我完全看不出有任何理由使用RDS代替EC2。但是,似乎我可能遗漏了一些大的东西,因为如果我做对了,没有人会使用RDS。我究竟缺少什么?与在EC2实例上安装自己的数据库相比,RDS有什么优势?
31 mysql  amazon-rds 

2
多列索引和性能
我有一个带有多列索引的表,并且我对正确排序索引以在查询中获得最大性能存有疑问。 场景: PostgreSQL 8.4,具有约一百万行的表 c1列中的值可以有大约100个不同的值。我们可以假设这些值是均匀分布的,因此每个可能的值都有大约10000行。 列c2可以具有1000个不同的值。每个可能的值都有1000行。 搜索数据时,条件始终包含这两列的值,因此该表具有包含c1和c2的多列索引。如果您仅使用一列进行过滤的查询,我已经读到了正确排序多列索引中的列的重要性。在我们的方案中情况并非如此。 我的问题是这个: 考虑到一个过滤器选择的数据要少得多的事实,如果第一个索引的选择性最强(允许使用较小的数据集),我是否可以提高性能?在看到引用的文章中的图形之前,我从未考虑过这个问题: 引用的文章中有关多列索引的图像。 查询使用两列中的值进行过滤。我没有只使用一列进行过滤的查询。它们都是:WHERE c1=@ParameterA AND c2=@ParameterB。也有类似这样的条件:WHERE c1 = "abc" AND c2 LIKE "ab%"



9
获取分数表中用户的排名
我有一个非常简单的MySQL表,用于保存高分。看起来像这样: Id Name Score 到目前为止,一切都很好。问题是:如何获得用户等级?例如,我有一个用户Name或Id并想要获得他的排名,其中所有行都按序排列Score。 一个例子 Id Name Score 1 Ida 100 2 Boo 58 3 Lala 88 4 Bash 102 5 Assem 99 在这种情况下,Assem的排名为3,因为他获得了第三高的分数。 查询应返回一行,其中仅包含所需的Rank。
31 mysql  rank 

3
忘记的PostgreSQL Windows密码
今天早上,我一直在尝试在Windows 7 Professional桌面上连接PostgreSQL数据库。 默认值为“ postgres”,但可以肯定的是,我忘记了最初安装该密码时使用的密码。 我已经在Google上搜索了,发现了与重置密码有关的帖子。我遵循了这些步骤,但是最终结果与文章中提到的有所不同。我用了- net user postgres postgres 重置数据库密码,但没有显示成功消息,而是: “发生了系统错误5。访问被拒绝。” 系统错误。如何避免此错误并重置密码?

1
为什么扫描比寻找该谓词要快?
我能够重现我将其描述为意外的查询性能问题。我正在寻找针对内部的答案。 在我的机器上,以下查询执行聚集索引扫描,并花费大约6.8秒的CPU时间: SELECT ID1, ID2 FROM two_col_key_test WITH (FORCESCAN) WHERE ID1 NOT IN ( N'1', N'2',N'3', N'4', N'5', N'6', N'7', N'8', N'9', N'10', N'11', N'12',N'13', N'14', N'15', N'16', N'17', N'18', N'19', N'20' ) AND (ID1 = N'FILLER TEXT' AND ID2 >= N'' OR (ID1 > N'FILLER TEXT')) ORDER BY ID1, …

6
SQL Server与新TLS标准的兼容性
主要的浏览器正在超越SSL3.0和TLS1.0。 PCI安全委员会宣布这些协议的有效期限已被视为足够强大的加密。 我们需要远离这些协议,而使用更新更强大的协议。在Windows服务器上,您可以非常轻松地禁用这些旧协议,而仅提供TLS1.1或更高版本。但是,如其他地方所述,如果禁用了较低版本的协议,则Microsoft SQL Server 2008 R2和SQL Server 2012(至少是Standard)都不会启动。但是,有越来越多的MS SQL Server版本。有SQL Server Standard,Business Intelligence,Enterprise,Express,Web和Compact版本。当然还有SQL Server 2008、2012、2014和(在预发行版本中)2016。 以下哪个版本支持或将仅支持TLS1.1或更高版本的协议?

1
需要外键索引
我在索引,主键和外键上苦苦挣扎,而且都需要全部使用。 如果我有两个表,它们两个都有一个整数作为主键。 第一个表通过FK引用第二个表的主键。 在两个表上,我在ID列上都有一个主键索引 我在table1.ref_field参照第二张表格(table2.id)的PK时创建了FK约束 我在上添加了一个索引 table1.ref_field 这是组织这些索引(主键和外键)的最佳方法吗?


1
当所有值均为36个字符时,使用char vs varchar可使索引查找明显更快
我有一个旧式架构(免责声明!),它对所有表(有很多)的主键使用基于哈希的生成ID。这样的ID的示例是: 922475bb-ad93-43ee-9487-d2671b886479 改变这种方法没有希望,但是索引访问的性能很差。撇开原因,这可能是无数的,有一件事我注意到,似乎不太理想-尽管是长度正好36个字符的所有许多表中的所有ID值,列类型是varchar(36),不是 char(36)。 除了将每个索引页的条目数量增加很少之外,将列类型更改为固定长度是否会char(36)带来任何显着的索引性能优势? 即在处理固定长度类型时,postgres的执行速度是否比可变长度类型快? 请不要提及微不足道的存储节省-与更改色谱柱所需的手术相比,这已不再重要。

1
SQL Server:在锁定通信缓冲区资源上死锁
这种死锁类型可能是什么原因?(一般不会出现死锁) 锁定通讯缓冲区资源 这是否表明系统内存不足并且缓冲区计数超出限制? 详细错误: 事务(进程ID 59)在锁定通信缓冲区资源上与另一个进程死锁,已被选择为死锁牺牲品。重新运行交易

4
CPU时钟速度与CPU核心数量之间的关系-更高的GHz,还是SQL Server使用更多的核心?
我们开始为VMware中的SQL Server 2016节点的虚拟群集提供一组物理服务器。我们将利用企业版许可证。 我们计划设置6个节点,但是关于在CPU时钟速度与CPU核心数之间提供物理服务器的理想方式尚有争议。 我知道这很大程度上取决于交易量和存储的数据库数量以及其他特定于软件的因素,但是建议使用一般经验法则吗? 例如,双8核3.2 GHz物理服务器(16核)是否比双16核2.6 GHz服务器(32核)更优先? 有谁遇到过进一步研究此类主题的白皮书?

2
MySQL和窗口函数
似乎MySQL不支持窗口功能。 例如简单:COUNT(*) OVER() AS cnt不起作用。 我不确定这是否也适用于商业版本(我认为社区版本是有限的子集)。 如果没有,如何解决此缺失的功能?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.