小编Der*_*ney的帖子

在生产数据库上创建分区

我有一个运行良好的生产 MySQL 5.1 数据库,但我想提高查询性能。我从未使用过分区,只是浏览了手册。

我有两个表涉及列上的复合键:

Bill_Num Bill_Date

我想在 Bill_Date 创建分区。该表包含四年的记录。我想知道一个新的分区表将如何适应未来几年?我还想知道是否需要更改现有查询中的表名并将表名替换为新的分区表名?

mysql database-design database-tuning partitioning

5
推荐指数
2
解决办法
3638
查看次数

无法杀死 SPID

我有一个带有 SP4 的 SQL Server 2005 Std (x64),它有一个我似乎无法杀死的过程。如果我查看 sys.dm_exec_requests,我会看到 SPID 103,wait_type 为 LCK_M_SCH_M,状态为 SUSPENDED,命令为 KILLED/ROLLBACK。然而,SPID 并没有消失。我什至可以执行 sp_who 103 并且我看到带有 KILLED/ROLLBACK 的 SPID。自从我杀死 SPID 以来,它的当前等待时间接近 20 小时。

此外,运行KILL 103 WITH STATUS ONLY返回 0% 已完成

sql-server-2005 process

5
推荐指数
1
解决办法
6059
查看次数

出现磁盘空间中断时如何处理 My SQL DB Master 到 Master 的复制

我们有两个节点节点 A 和 B 的主对主复制,两者都在虚拟环境中。最初,节点 A 出现中断(磁盘空间问题)并停止复制。应用程序级流量已转移到节点 B 并重新定位节点 A 数据存储并提供可用空间。

节点 A 已成功启动并启动。在与节点 A 同步时,复制已开始并在节点 B 中出错,并且节点 B 中的 bin 日志已损坏。根本原因仍然是个谜。但是分析日志可以发现一些重复的条目,下面是错误日志信息:

[ERROR] Error reading packet from server: Client requested master to start replication from impossible position ( server_errno=1236).
[ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Client requested master to start replication from impossible position', Error_code: 1236
111014 20:25:48 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.001067', position 183468345.
Run Code Online (Sandbox Code Playgroud)

在这种情况下我们如何处理复制?我们可以跳过当前的 …

mysql replication

5
推荐指数
1
解决办法
4952
查看次数

根据所有者+数据库中的所有用户导出Oracle表

我想将所有用户和角色对象从 Oracle 10g 数据库导出到另一个。我用谷歌搜索,但我不知道如何去做。

首先我使用这个命令:

exp system/root@ [DB_Name] file= [Back_file_name] owner=( [Owner_Name] )

但问题是某些表设置取决于用户权限。因此我还想导出用户对象。

例如,可以使用以下命令导出所有对象:

exp system/root@ [DB_Name] Full=Y file= [Back_file_name]

但是此命令不会为我导出所需的对象。

我只想导出:

  • 按所有者名称排列的表
  • 全部用户
  • 也许角色

这可能吗?

export oracle-10g import

5
推荐指数
1
解决办法
7478
查看次数

是否有任何工具可以从 ERD 到 DB 设计,反之亦然?

我正在学习数据库设计并寻找一些工具,最好是开源软件,可以帮助从 ERD 到数据库,反之亦然。

作为记录,我使用的数据库是 MySQL。

mysql schema erd tools database-design

5
推荐指数
1
解决办法
1757
查看次数

如何根据一行的字段在索引上创建多个条目?

我从未找到将一行的多个字段索引为索引条目或在 MySQL 上模拟此功能的好方法。

当您将字段用作标签或类似概念时,就会出现问题。例如:字段名称为 tag1、tag2、tag3。要快速搜索具有特定标签的行,您需要有 3 个索引并以最基本和最明显的方式执行 3 个单独的查询。

有没有办法将这 3 个字段索引为一个索引的条目,只允许一次搜索。

ID tag1 tag2 tag3
-- ---- ---- ----
01 abc  xyz  bla
02 foo  bar  ble
03 xyz  bla  bar

index
abc -> 01
bar -> 02 03
bla -> 01 03
ble -> 02
foo -> 02
xyz -> 01 03
Run Code Online (Sandbox Code Playgroud)

或者有没有其他方法可以有效地做到这一点?

mysql index optimization

4
推荐指数
1
解决办法
196
查看次数

MS SQL 中的 SQL JOIN 语法

我在 MSSQL 课上教过,这是如何连接两个表

select * from FirstTable A
JOIN SecondTable B
on A.ID= B.ID
Run Code Online (Sandbox Code Playgroud)

现在在我的职业生涯中,我遇到过这样的 JOIN 查询

select * from FirstTable A, SecondTable B
where A.ID=B.ID
Run Code Online (Sandbox Code Playgroud)

我知道第二种选择曾经是常态,但现在可能已经放弃了。

我发现在我加入 6+ 个表 + 有多个子查询的复杂查询中,第二种形式更容易理解,而且简短漂亮。

问题

  • 我应该使用哪一种?
  • 一个比另一个有优势吗?

sql-server-2008 join

4
推荐指数
2
解决办法
676
查看次数

别名列的 Where 子句

我有一个从列中解析字符串值的查询:

SELECT left(DateTimeSent, 17) AS timesent FROM allog_07_11_e query1 
Run Code Online (Sandbox Code Playgroud)

当我做:

SELECT left(DateTimeSent, 17) AS timesent FROM allog_07_11_e query1.timesent != '0'
Run Code Online (Sandbox Code Playgroud)

我得到:

Msg 207, Level 16, State 1, Line 1
Invalid column name 'timesent'.
Run Code Online (Sandbox Code Playgroud)

任何想法为什么?

sql-server-2008 sql-server

4
推荐指数
1
解决办法
2280
查看次数

如何选择/计算列中存在相同值但不在同一表中的其他列中的行

我有这个表结构和数据:

CREATE TABLE IF NOT EXISTS `default_relations_users` (
  `id_user_rq` int(11) NOT NULL,
  `id_user_ap` int(11) NOT NULL,
  UNIQUE KEY `rusers_rq_ap_idx` (`id_user_rq`,`id_user_ap`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

INSERT INTO `default_relations_users` (`id_user_rq`, `id_user_ap`) VALUES
(1, 2),
(1, 3),
(1, 4),
(2, 1),
(2, 2),
(2, 3);
Run Code Online (Sandbox Code Playgroud)

我只需要获取值在左侧但不在右侧的行,例如:将不会选择 1,2 和 2,1 但 1,3 和 1,4 是。我试试这个查询:

SELECT * FROM default_relations_users
WHERE default_relations_users.id_user_rq = 1 
 AND NOT EXISTS (SELECT id_user_ap FROM default_relations_users WHERE id_user_ap = 1) 
Run Code Online (Sandbox Code Playgroud)

也许我不明白子查询是什么意思,或者我以错误的方式使用。所以有什么帮助吗?

mysql query subquery

4
推荐指数
1
解决办法
5万
查看次数

需要有关“标签”表设计的建议

我的网站有不同的内容类型。所有内容类型都应该是可标记的(除非在模型中指定,无论如何)。我可以为我的设计想到 2 个选项:

2 个表选项:1 个标签表(+另一个,其 i18n 内容)加上 1 个关联表(content_type、content_id、tag_id)。

优点:

  • 创建速度更快
  • 标签的模型部分是相同的(所以继承模型)
  • 控制器也是一样。

潜在的缺点:

  • 性能会差吗?
  • 桌子很快会太大吗?
  • 如何查询标签云(与所有分组内容相关)?

许多表格选项:1 个标签表格,每种内容类型的关联表格。

优点:

  • 桌子会更短

缺点:

  • 必须自定义每个模型或编写逻辑/足迹来查询正确的表
  • 丑陋的长请求/php 代码来加入所有内容类型的标签


附加事实:

  • 前端将有缓存,标签由内容编写者设置。
  • 有 10 种内容类型。
  • 通常不会有新类型的内容。
  • 内容数量为 ~500 ,将在 3 年内翻倍。
  • MySQL 引擎 InnoDB。
  • 使用 yii 框架构建。
  • 将查询已定义内容类型的标签
  • 将查询任何类型内容的标签(例如,一个大标签云)。

所以我的想法是使用第一个设计(2 个表)。但我不是数据库专家......你会推荐第二种选择吗?为什么 ?

mysql innodb performance database-design maintenance

4
推荐指数
1
解决办法
2731
查看次数