小编gbn*_*gbn的帖子

表中有重复的条目是否危险?

我的表有很多重复的条目,如果我不解决这个问题会不会很危险?我的表结构如下:

Music_id | Music_title      | Music_author | Music_link
1          Look at me now     Chris Brown    
2          Look at me now     Jay-z        
Run Code Online (Sandbox Code Playgroud)

这只是一个例子,但那是我的表。看音乐标题。已经有重复的条目了。有时 music_title 会达到 10 个重复

所以我打算查一下音乐表

Music
id | music_title
1    Look at me now

My table
id | music | music_author | Music_link
1     1      chris brown   
2     1      jay-z
Run Code Online (Sandbox Code Playgroud)

但我担心的是,音乐领域的 1 也是重复的。哪个更好?我糊涂了。

mysql database-design

2
推荐指数
1
解决办法
103
查看次数

MS SQL Server - 使用行 ID 将行值更新到下一行

我有一张如下表:

Newid1       a   b   c
   1       null  40  50
   2       null  45  55
   3       null  46  56
   4       null  47  57
   5       null  48  58
Run Code Online (Sandbox Code Playgroud)

现在我想通过将 C 列值更新到其中来更新列中的值(例如:50 到第二行,55 到第三行,56 到第四行......)。如何使用 WHILE 命令执行此操作。提前谢谢大家。

locking

2
推荐指数
1
解决办法
8768
查看次数

为什么向我的查询添加 LIMIT 会使其爬行?

简单查询:

select sum(score) total,name,gender,dob,country 
from users join scores on users.id = scores.user_id
where date between '2012-01-01' and '2012-01-31 23:59:59'
group by scores.user_id having sum(score)>=1000 order by sum(score) desc limit 50
Run Code Online (Sandbox Code Playgroud)

因此,尝试获取 2012 年 1 月的累积分数列表,按分数降序排列它们并对其进行分页。

无限制:缓慢但可以:搜索 69348 行。(很高兴弄清楚如何避免临时表,但我不能)。解释说:

1, 'SIMPLE', 'scores', 'range', 'user,date,user+date', 'date', '8', '', 69348, 'Using where; Using temporary; Using filesort'
1, 'SIMPLE', 'users', 'eq_ref', 'PRIMARY', 'PRIMARY', '8', 'scores.user_id', 1, 'Using where'
Run Code Online (Sandbox Code Playgroud)

有限制:它是一样的,但行搜索现在是 1806794,它需要永远。

如果有任何区别,它是一个分区的 InnoDB,所有数据都在一个分区上。

mysql optimization limits group-by

2
推荐指数
1
解决办法
343
查看次数

是 where x = 0 或 x is null 被替换为 where isnull(x, 0) = 0 resp。其中 NVL(x, 0) = 0

将 x 视为包含 null、0、1 的列。只有不到 1% 的行包含 1。0 和 Null 之间没有逻辑差异。

坚持在这里使用 isnull 而不是 NVL 是个好主意吗(性能)?

null oracle sql-server

0
推荐指数
1
解决办法
1311
查看次数

如何将 SQL 2000 数据库升级到 SQL 2005 - 需要确认?

我需要确认一个标准的SQL 2000 数据库升级到SQL 2005 的过程。据我了解,至少有2 种升级方法。返回\恢复和分离\附加数据库。就我而言,我需要将原始 SQL 2000 数据库保持在线状态,因此我认为最好执行 Back\Restore。有人可以确认下面的过程并阐明我的问题吗?

  1. 在 SQL 2000 服务器上
    1. 对数据库进行完整备份
    2. 数据库->[数据库]->所有任务->备份数据库...,选择“完整”,并保存文件(.bak)
    3. 将备份文件 (.bak) 移动到新的 SQL 2005 服务器
  2. 在新的 SQL 2005 服务器上
    1. 将 .MDF 和 .LDF 文件从旧的 SQL 2000 Server 复制到新的 SQL 2005 Server。
    2. 如果需要,将文件重命名为更标准的名称
    3. 创建一个新的 SQL 2005 数据库。
    4. 执行备份文件 (.bak) 的还原
    5. 选择“选项”选项卡。这将包含备份文件中的 mdf 和 ldf 位置。将这些更改为新服务器上的合法目录。
    6. 将兼容性更改为“SQL Server 2005 (90)”问题:
  3. 什么执行升级?
  4. SQL 2000 数据库是否在还原期间由 SQL 2005 引擎自动升级?
  5. 我是否需要将 .MDF 和 .LDF 文件从旧的 SQL 2000 Server 复制到新的 SQL 2005 Server?
  6. 我需要创建一个新的 SQL 2005 数据库吗?

在此先感谢您的帮助。乔治

sql-server-2000

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