数据库管理员

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

1
PostgreSQL和MySQL的可伸缩性限制
我听说诸如MySQL或PostgreSQL之类的非分片关系数据库的性能“突破”了10 TB。 我怀疑这样的限制确实存在,因为Netezza,Greenplum或Vertica等都不会提出这样的限制,但是我想问一下这里是否有人提及量化这些限制的任何研究论文或正式案例研究。

1
在不停机的情况下进行模式更改和将数据迁移到活动数据库的最佳做法?
如何在不停机的情况下对活动数据库进行架构更改? 例如,假设我有一个PostgreSQL数据库,该数据库的表包含各种用户数据(如电子邮件地址等),这些数据均与特定用户相关联。如果要将电子邮件地址移动到新的专用表中,则必须更改架构,然后将电子邮件数据迁移到新表中。如何在不停止写入原始表的情况下完成此操作?当然,当数据从旧表写入新表时,新数据将继续写入旧表并丢失,对吗? 我猜这个问题经常出现,但是我找不到任何标准的解决方案。 本文解决了这个问题,但是我并没有真正理解步骤3。他说要写入两个表,然后将旧数据从第一个表迁移到新表。您如何确保仅迁移旧数据? (我在Heroku上使用PostgreSQL。)

5
什么时候可以收缩数据库?
我知道收缩是魔鬼:它会颠倒页面顺序,并导致皮肤癌,数据碎片和全球变暖。清单还在继续……也就是说,我有一个100 GB的数据库,我删除了50 GB的数据-不是在一个表上,而是在数据库范围内对旧数据进行一般修剪,覆盖了90%的数据。表-这是否构成缩小数据库的合适用例? 如果不是,那么从数据库中删除如此高的数据百分比后,应采取哪些适当的步骤来清理房屋?我可以想到两个:重建索引和更新统计信息。还有什么?

5
SQL Server维护计划-任务和计划的最佳实践
我的任务是为Sql Server 2005数据库设计维护计划。我知道要进行备份,我想每15分钟执行一次每日完整数据库备份和事务日志备份。我的问题在于弄清楚我想完成哪些其他任务以及应该多久执行一次。 因此,到目前为止,我已经牢记这一点。如果我的想法有任何缺陷或更好的解决方法,请纠正我。 备份-所有表,完整备份(每天) 备份-选定表,完整备份(每小时) 备份-事务日志(每15分钟) 检查数据库完整性(每天) 重组索引(每天) 更新统计信息(每天) 缩小数据库(每周一次) 重建指数(每周) 维护清理(每天) 我记得有一段时间读过(当我在另一份工作中制定类似计划时),其中一些任务不需要每天运行或不应该每天运行。至于哪一个,它逃脱了我。我可以使用一些指导来创建更好的维护计划,以减少灾难中的数据丢失,但在高峰时段运行时不会增加系统负担(也可以提高性能)。

9
是否有像Microsoft的“ SQL Server Profiler”这样的MySQL工具?[关闭]
在MySQL上进行开发时,我真的很想能够启动分析器。我发现SQLyog可以很好地替代Query Analyzer,但是还没有找到像SQL Profiler一样工作的工具。 对于尚未看过Microsoft SQL Profiler的MySQL人员,以下是屏幕截图 在我之前的工作中,我们有一个工具胜过SQL Profiler,甚至为我们提供了堆栈跟踪 有谁知道我提到的与MySQL兼容的任何工具。 (仅供参考,我可以让Altiris Profiler与MySQL一起使用,但是它将涉及运行Windows,而且它并不是真正的Symantec SKU,因此许可确实很棘手)
43 mysql  profiler  tools 

2
MySQL:如何检查与表相关的外键
如何在MySql中查看与表相关的外键? 背景:我想在MySql中删除具有外键约束的表。当我这样做时,我得到: Error Code: 1217. Cannot delete or update a parent row: a foreign key constraint fails 我该如何删除与表相关的外键而使其他人离开。

3
给定数据库和用户的search_path是什么?
我可以看到当前search_path: show search_path ; 我可以使用search_path以下命令为当前会话设置: set search_path = "$user", public, postgis; 同样,我可以通过search_path以下方式为给定数据库永久设置: alter database mydb set search_path = "$user", public, postgis ; 我可以通过search_path以下方式为给定角色(用户)永久设置: alter role johnny set search_path = "$user", public, postgis ; 但是,我想知道在更改数据库和角色设置(相对于search_path)之前如何确定它们?


5
SQL Server中的数据混淆
SQL Server中数据混淆的最佳实践是什么? 我们想在我们的UAT系统中使用掩盖的Production数据。 如果我们想快速进行并且混淆程度更高,应该采取什么方法?我正在考虑为人们的姓氏和姓争夺角色,但是如何呢?我应该自己创建一个函数还是可以使用任何预定义的函数?我不想花时间重新发明轮子:) 日期字段呢?例如,应该从整个表中随机选择出生日期并分配给记录,还是有更好的方法呢?

3
如何查看当前的数据库邮件配置?
我们的SQL Server(2008)实例配置为发送邮件,并且一切正常,但是我不知道如何查看现有配置,尤其是SMTP服务器。 在SSMS中,我只能启动配置向导,而在网上找不到任何内容-有关如何进行设置的大量信息,而对于如何查看当前设置则没有任何信息。 如何查看现有设置?

4
MySQL错误读取通信数据包
在MySQL错误日志中,我看到了如下这样的警告: 120611 16:12:30 [Warning] Aborted connection 2619503 to db: 'db_name' user: 'user_name' host: 'webapp_hostname' (Got an error reading communication packets) 尚未注意到任何数据丢失本身,因此我想知道此警告的含义或原因,以及是否可以解决引起这些问题的问题。这是在RHEL 6.1和MySQL Enterprise 5.5上。
42 mysql  mysql-5.5 

2
何时更新统计信息?
我继承了执行以下任务的维护计划: 清理旧数据 检查数据库完整性 执行数据库和事务日志备份 重组我们的索引 更新统计 删除旧的备份和维护计划文件 在23分钟的维护计划中,更新统计信息需要花费惊人的13分钟。在这13分钟内,对数据库的访问被阻止(或至少暂停了从该数据库到我们其他数据库的复制)。 我的问题是: 我们什么时候应该更新统计信息,为什么? 这似乎是我们每天应该减少的工作频率。我试图让我们摆脱“不必要”维护不必要的思维定势。

5
嵌套视图是一种好的数据库设计吗?
我很久以前就读过书。本书指出,我们不应允许在SQL Server中具有嵌套视图。我不确定为什么不能这样做,否则我可能会记得错误的陈述。 学生们 SELECT studentID, first_name, last_name, SchoolID, ... FROM students CREATE VIEW vw_eligible_student AS SELECT * FROM students WHERE enroll_this_year = 1 教师 SELECT TeacherID, first_name, last_name, SchoolID, ... FROM teachers CREATE VIEW vw_eligible_teacher AS SELECT * FROM teachers WHERE HasCert = 1 AND enroll_this_year = 1 学校 CREATE …

5
如何设计用于存储排序列表的数据库?
我希望将排序后的列表存储在数据库中。我想有效地执行以下操作。 Insert(x)-将记录x插入表中 Delete(x)-从表中删除记录x Before(x,n)-返回排序列表中记录x之前的'n'条记录。 After(x,n)-返回排序列表中记录x之后的'n'条记录。 First(n)-返回已排序列表中的前n个记录。 Last(n)-从排序列表中返回最后的'n'条记录。 Compare(x,y)-给定表中的两个记录x和y,请确定x> y。 我能想到的简单方法是在表中存储某种“等级”属性,并通过对该属性进行排序进行查询。但是在这种方法中,插入/修改具有等级的记录成为昂贵的操作。有没有更好的方法? 具体来说,我希望使用Amazon的SimpleDB实现该表。但是对关系数据库的一般回答也应该会有所帮助。 负载配置文件更新: 由于我正在针对Web应用程序进行规划,因此这取决于使用该应用程序的用户数量。 如果有10万活跃用户(超级乐观:P),那么我每天的估算值大概是 500k选择,100k插入和删除,500k更新 我希望桌子总数可以增长到50万。 我希望对更新,插入和比较操作进行优化。项目的等级将不断变化,我需要保持表格更新。

7
为什么在我的数据库开发中应该使用Visual Studio 2010 over SSMS?
Visual Studio 2010引入了数据库项目以及据称可以促进数据库开发的一系列相关功能。我使用SQL Server Management Studio(SSMS)多年来进行数据库开发没有问题。 当SSMS为我工作时,为什么还要打扰VS2010?具体来说,它比SSMS做得更好吗? 但是也许我的前提不正确,SSMS仍然胜过VS来进行数据库开发。如果是这样,那么以什么具体方式是正确的?

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.