数据库管理员

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

6
从mysqldump加载数据的速度较慢
我有一个中等大小的MySQL数据库,其中包含大约30个表,其中一些是1000万条记录,大约是1亿条。将mysqldump所有表(为独立的文件)的速度也相当快,也许需要20分钟。它产生约15GB的数据。最大的转储文件在2GB范围内。 当我将数据加载到另一台6核8GB机器上的MySQL中时,这将花费很多时间。轻松12个时钟小时或更长时间。 我只是运行mysql客户端来加载文件,即 mysql database < footable.sql 直接与文件直接从mysqldump中移出 mysqldump database foo > footable.sql 显然我做错了。我从哪里开始,以便可以在合理的时间内完成? 我没有在转储或负载上使用任何开关。
21 mysql  mysqldump 

6
有什么好的工具可以进行数据库设计和原型设计?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为数据库管理员Stack Exchange 的主题。 5年前关闭。 我希望有一个很好的工具来设计具有所有表,列,数据类型和关系的数据库架构。今天,我主要使用笔和纸来完成此操作,但我想使用一个好的设计工具来完成此操作。 有没有好的(也许免费的)数据库设计工具?

1
CAP定理背后的原因是什么?
http://en.wikipedia.org/wiki/CAP_theorem http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf 我想是不是非常简单,为什么只有两个的 一致性 可用性 分区容限 可以容纳任何给定的分布式数据库系统。这个猜想被证实,但有没有看出为什么一个简单的方法可能是,这可能持有? 我不是在寻找证明,而是一种理解为什么该定理可能有意义的好方法。这是什么原因?

3
多久备份一次master数据库?
BOL中的建议相当模糊: 必要时备份主服务器,以充分保护数据以满足您的业务需求。我们建议您使用定期的备份计划,在进行实质性更新后,您可以通过额外的备份来进行补充。 如果您进一步冒险,则会发现以下详细信息: 导致主服务器更新且需要进行备份的操作类型包括: 创建或删除用户数据库。 如果用户数据库自动增长以容纳新数据,则 master 数据库不会受到影响。 添加或删除文件和文件组。 添加与登录安全性相关的登录名或其他操作。 数据库安全操作(例如将用户添加到数据库)不会影响主数据库。 更改服务器范围或数据库配置选项。 创建或删除逻辑备份设备。 配置服务器以进行分布式查询和远程过程调用(RPC),例如添加链接的服务器或远程登录。 因此,如果我们所有的登录名都是通过Windows组添加的,并且我们没有对数据库进行任何其他更改,那是否意味着一次备份主数据库就足够了? 如果不是,那么主数据库的标准备份间隔是多少?

4
确定架构更改是如何发生的?
昨天发生了一些坏事。 某人之前修改过的某个视图后来被某人修改,最终破坏了报告。不幸。某人(在不知不觉中)在PRODUCTION数据库中进行了此修改。 我的问题:有没有一种方法(脚本/软件/免费软件等),我们可以借此了解谁(用户名)进行了此修改,因此我可以撤消该用户对生产数据库的访问。 如果我的问题不清楚,请发表评论。
21 sql-server  view 

1
关于MySQL innodb_flush_method变量的说明
首先,让我承认我对硬盘的内部运行情况一无所知。因此,当我阅读有关变量innodb_flush_method的手册时,我感到困惑。我可以用外行的术语来解释O_DSYNC和O_DIRECT的区别,以及如何知道这是否是数据库服务器上的性能问题。 我的设置上的一些统计信息:运行MySQL 5.1.49-64位的Mac OSX 10.6(32位内核,因为体系结构已过时)(希望它可以让我使用内存)。8GB RAM,〜6GB innodb数据/索引。
21 mysql  innodb 


5
表别名是不好的做法吗?
我记得在DBMS课程中为信息服务硕士课程的学生学习过这一点。为了节省输入时间,您可以输入: SELECT t1.id, t2.stuff FROM someTable t1 INNER JOIN otherTable t2 ON t1.id=t2.id ; 但是...为什么在存储过程之类中可以接受?似乎这样做只会损害语句的可读性,同时又节省了很少的时间。有任何功能或逻辑上的理由要这样做吗?似乎增加了歧义而不是消除了歧义。我看到使用这种格式的唯一可以接受的原因是,如果要添加一个语义上有意义的别名(例如,FROM someTable idsTable当表名的描述性不足时)。 表别名是不好的做法还是只是滥用有用的系统?


4
为什么某些DBMS不允许某些DDL语句回滚?
最近,我发现MySQL 不支持DDL的回滚,例如“ alter table”。习惯于PostgreSQL,这让我感到奇怪,但是我的一个朋友告诉我,即使Oracle也不允许。有不支持它的技术原因吗?对于他们来说,这仅仅是一个“无趣的”功能吗? 编辑:刚刚发现此比较。它看起来像有很多的DBMS是做支持事务DDL。

4
RDBMS上的“索引”是什么意思?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以当前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 8年前关闭。 我像大多数开发人员一样使用索引(大多数情况下...索引!),但是我敢肯定,有很多微妙的方法可以使用索引来优化数据库。我不确定它是否特定于DBMS的任何实现。 我的问题是:什么是如何使用索引的好示例(基本情况,显而易见的情况除外),以及在表上指定索引时DBMS如何优化其数据库?
21 index  rdbms 

13
认证的价值[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 问题 你有什么认证? 您的认证(或缺乏认证)曾经为您服务过吗? 您打算联系认证吗? 您是否续签认证?如果是这样,您的雇主是否积极支持续签?
21 career 

14
舒适的sqlplus接口?
我发现sqlplus“界面相当过时。有一些命令或关键字可供使用,这很好,但是例如,上一个历史记录条目没有“向上箭头”键可用。 什么是好的替代品/扩展名sqlplus?命令行实用程序可以是GUI或更高版本(因此通过SSH仍然有用)。 SQL * Plus是用于Oracle数据库的主要命令行工具。
21 oracle  tools  sqlplus 

1
哈希键探针和残差
说,我们有这样的查询: select a.*,b.* from a join b on a.col1=b.col1 and len(a.col1)=10 假设以上查询使用哈希联接并具有残差,则探测键为col1,残差为len(a.col1)=10。 但是,通过另一个示例,我可以看到探针和残差在同一列。以下是我要说的话的详细说明: 查询: select * from T1 join T2 on T1.a = T2.a 执行计划,突出显示探针和残差: 测试数据: create table T1 (a int, b int, x char(200)) create table T2 (a int, b int, x char(200)) set nocount on declare @i int …

2
我可以选择插入同一未提交事务中的数据吗?
也许这是一个愚蠢的初学者问题,但是我在任何地方都找不到答案。我到处都读到关于的信息Transaction Isolation,它解决了并发事务中数据的可见性。我担心的是一次交易中的行为。 如果我开始交易,请插入一些数据,我是否可以立即选择它们-仍在同一但尚未提交的交易中?如果是,在并发事务的情况下,是否可以像上述事务隔离那样以类似的方式更改此行为? 具体来说,我的目标是PostgreSQL 9.4。

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.