小编Rol*_*DBA的帖子

是否为不同的产品类型创建单独的表?

我正在设计一个数据库,我正在重新考虑我最初的设计决定......

产品类型如下... 型号、零件、替换零件套件和选项。

选项 A(第一个设计):我计划为上述产品类型设置单独的表格。我想说每个表中大约 75% 的字段是相同的。

我将每个产品类型创建为单独的表,因为我需要在它们之间创建关联。例如,一个模型可以有很多选项,一个选项可以有很多模型。一个选项也可以有很多部分,一个部分可以有很多选项……等等……

选项 B:我可以创建一个名为 Product 的表格,而不是单独的表格,其中包含模型、零件、替换零件套件和选项。我可以有一个称为 type 的字段来区分模型、选项等。我认为不利的一面是某些产品类型永远不会使用几个字段(留空)。我猜这就是“非最佳实践”发挥作用的地方。

选项 B 将大大降低数据库设计的复杂性。在提取数据进行查询时,我也不必担心引用一堆表......

database-design database-recommendation

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

MySQL 事务大小 - 多大才太大?

我有一个经常运行的导入过程,我希望它是一种“全有或全无”的交易,也就是:交易。

有很多方面,导入可能会产生 100k-1mil+ 记录之间的任何地方。这相当于有效载荷范围从几 MB 到几百 MB 的数据。

我知道临时表是另一种选择 - 但这种方法似乎很方便。

对于这种在提交之间进行大量数据操作的实践,是否有任何需要注意的警告?(在提交后的典型写入/索引负载突发之外)

mysql innodb transaction mysql-5.5

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

如何在不转储所有数据库的情况下缩小 innodb 文件 ibdata1?

InnoDB 将所有表存储在一个大文件中ibdata1

删除大表后,无论表有多大,文件都会保持其大小。如何缩小该文件而不必转储并重新导入整个数据库(总共有数百 GB)?

我认为原因是因为您仍然可以回滚下降。就我而言,我不需要。

mysql innodb memory disk-space

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

如何在 phpMyAdmin 中将 mysql 表自动增量重置为 1?

我知道在 MySQL 的命令行中,我可以使用以下命令将表的自动增量字段重置为 1:

ALTER TABLE tablename AUTO_INCREMENT = 1
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有办法从 phpMyAdmin 中做到这一点。像一个复选框来重置自动增量或其他类似的东西?

并不是说命令行方法有什么问题。更多我一直在思考的那些好奇的事情......提前致谢!

mysql phpmyadmin auto-increment

24
推荐指数
2
解决办法
16万
查看次数

SQLite 的限制

从单用户、嵌入式、面向原型的数据库引擎中,sqlite 数据库能走多远?

sqlite

23
推荐指数
1
解决办法
2544
查看次数

如何在 PostgreSQL 中将字符串转换为双精度?

如何在 PostgreSQL 中将字符串转换为双精度?

我试过类似的东西:

update points set latitude2 = cast(latitude as double) ;
Run Code Online (Sandbox Code Playgroud)

其中纬度是一个字符串,纬度2是一个双精度值。我只是无法让它工作。

postgresql

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

如何将用户踢出 SQL Server 2008 数据库?

我们需要做一个恢复,不能因为其他用户连接。我们以为我们已经断开了每个进程,但显然没有。

我们如何从 Management Studio 启动其他所有人,以便我们进行备份?

sql-server-2008 sql-server

23
推荐指数
2
解决办法
13万
查看次数

即用型数据库模型示例

在哪里可以找到现成的数据库模型?

我不需要包含数据的数据库,而只需要模式(UML 图)。也许类似于此链接中数据模型,但要复杂得多和现实世界。

database-design database-recommendation database-theory

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

频繁查询缓存失效的开销值得吗?

我目前正在研究一个 MySQL 数据库,我们看到查询缓存中有大量无效,主要是因为在许多表上执行了大量的 INSERT、DELETE 和 UPDATE 语句。

我要确定的是,允许将查询缓存用于针对这些表运行的 SELECT 语句是否有任何好处。由于它们很快就失效了,在我看来,最好的办法是在这些表的 SELECT 语句上使用 SQL_NO_CACHE。

频繁失效的开销值得吗?

编辑:应以下用户@RolandoMySQLDBA 的要求,这里是有关 MyISAM 和 INNODB 的信息。

数据库

  • 数据大小:177.414 GB
  • 索引大小:114.792 GB
  • 表大小:292.205 GB

我的ISAM

  • 数据大小:379.762 GB
  • 索引大小:80.681 GB
  • 表大小:460.443 GB

附加信息:

  • 版本:5.0.85
  • 查询缓存限制:1048576
  • query_cache_min_res_unit:4096
  • 查询缓存大小:104857600
  • query_cache_type:开启
  • query_cache_wlock_invalidate:关闭
  • innodb_buffer_pool_size: 8841592832
  • 24GB 内存

mysql innodb myisam performance cache

23
推荐指数
1
解决办法
9977
查看次数

如何在mysql中生成一个序列

在mysql中考虑这个表

create table numbers (number int);
insert into numbers values (3), (2), (9);
select * from numbers;

+--------+
| number |
+--------+
|      3 |
|      2 |
|      9 |
+--------+
Run Code Online (Sandbox Code Playgroud)

是否有一个简单的查询来生成一个包含以下列的表

  1. 从 1 到 10 的数字
  2. 如果数字存在于表编号中,则为 1,否则为 0

我想你必须创建一个数字序列才能做到这一点。如果可能,我想创建这样一个序列而不将其存储在数据库中。

相关问题:是否有一个选择查询生成从 1 到 10(或 100 或 1000)的数字序列?

mysql sequence

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