AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-1256

Michael McGowan's questions

Martin Hope
Michael McGowan
Asked: 2013-01-22 07:25:11 +0800 CST

是否有一种标准方法可以用查找表中的值替换代码以进行报告或分析?

  • 4

假设我有一个“主”表,该表可能已高度规范化,并且主要由仅包含查找其他表的代码的列组成(它们可能是外键,但如果有意义,请不要在您的答案中假设)。例如,也许这个主表是一个人员列表,其中一列是 for favorite_color。当然,我们的查找表看起来像这样:

color_cd    color_name
0           Unknown
1           Red
2           Blue
3           Orange
4           Other

现在,如果我要从这个主表创建报告,或者可能将这些数据输入到某些软件中供领域专家使用,我宁愿用查找表中的代码替换favorite_color代码。color_name当然,一种解决方案是在我的 SELECT 中使用简单的 JOIN 来执行此操作:

SELECT main.col1, main.col2, colors.color_name as `Favorite Color` 
  FROM main LEFT OUTER JOIN colors ON (main.favorite_color = colors.color_cd);

这可以完成工作。现在假设主表有几十个甚至几百个这样的列和数百万行。一些查找表很小,如上面的示例,但其他查找表可能有数百或数千个值。

是否有任何一种标准的方式来进行这种转换,或者是否有几十个或几百个连接的长篇大论?这种类型的东西是任何 ETL 产品的典型组件吗?是否最好编写一个脚本来处理这个没有连接和 SQL 之外的?请原谅可能存在一些滥用或误用术语的情况;我什至不确定上述过程是否有名称。

performance join
  • 1 个回答
  • 1478 Views
Martin Hope
Michael McGowan
Asked: 2012-01-15 10:56:20 +0800 CST

分开表或分割一张大表?

  • 4

我正在构建一个包含特定列的相当大的表,my_column. 有少量可能的值my_column,并且每个唯一值都my_column应该有相同数量的与之关联的行。此外,查询很可能一次只关注一个特定的值my_column。我看到一种选择是根据my_column. 我看到的另一种选择是完全创建一个单独的表,以便每个表都与my_column. 我想知道是什么导致我选择一个选项而不是另一个选项。

据我了解,一个分区的大表似乎是“正确”或“纯粹”的方式,因为这似乎是分区的主要用例。但是,我怀疑出于实际原因,第二种选择更好,这就是我所倾向于的。我不知道这是否重要,但我正在处理 MyISAM 表。

mysql database-design
  • 2 个回答
  • 4283 Views
Martin Hope
Michael McGowan
Asked: 2012-01-04 16:07:24 +0800 CST

我可以为特定的 MySQL 表指定不同的磁盘吗?

  • 3

我将家用机器用作我的爱好分析项目的个人数据库。这台机器有一个 SSD 用于 MySQL 存储其数据的主驱动器。它还有一个更大的辅助硬盘驱动器,而不是 SSD。我即将创建一个我担心可能太大而无法放入我的 SSD 的表;我是否可以将一张表存储在更大(但更慢)的驱动器上?如果重要的话,我通常使用 MyISAM 表,但如果有帮助的话,我可以说服使用 InnoDB。

mysql windows
  • 4 个回答
  • 7694 Views
Martin Hope
Michael McGowan
Asked: 2011-03-28 11:47:38 +0800 CST

为什么MySQL说我内存不足?

  • 10

我试图INSERT...SELECT在 MySQL 中使用 JDBC 执行相当大的任务,但出现以下异常:

Exception in thread "main" java.sql.SQLException: Out of memory (Needed 1073741824 bytes)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)

因为我实际上并没有返回 ResultSet 对象,所以我认为 Java 堆空间应该不是问题。但是,无论如何,我都尝试将其提高,但效果不佳。然后我尝试在 MySQL Workbench 中执行该语句,我得到了基本相同的结果:

Error Code 5: Out of memory (Needed 1073741816 bytes)

我应该有足够的 RAM 来完成这些操作(足以容纳我从中选择的整个表),但我猜我需要调整各种设置以利用我所有的内存。我正在使用Windows Server 2008 AMI运行 Amazon EC2高内存双超大型实例。我试过摆弄 my.ini 文件以使用更好的设置,但据我所知,我可能会让事情变得更糟。这是该文件的转储:

[client]
port=3306
[mysql]
default-character-set=latin1
[mysqld]
port=3306
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=latin1
default-storage-engine=INNODB
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections=100
query_cache_size=1024M
table_cache=256
tmp_table_size=25G
thread_cache_size=8
myisam_max_sort_file_size=100G
myisam_repair_threads = 2
myisam_sort_buffer_size=10G
key_buffer_size=5000M
bulk_insert_buffer_size = 4000M
read_buffer_size=8000M
read_rnd_buffer_size=8000M
sort_buffer_size=1G
innodb_additional_mem_pool_size=26M
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size=13M
innodb_buffer_pool_size=23G
innodb_log_file_size=622M
innodb_thread_concurrency=18
innodb_file_per_table=TRUE
join_buffer_size=4G
max_heap_table_size = 10G

那么这只是更改上述设置以更好地适应我的环境的问题吗?如果是这样,我应该使用什么设置?我是唯一一个使用过这个实例的人;我将它用于我的个人爱好项目,该项目涉及对大型数据集的统计分析。因此,我可以自由地让它为我自己的查询消耗所有可用资源。

如果这不是更改这些设置的问题,那么问题是什么?感谢您为如何更好地配置所有内容提供的任何帮助。

mysql windows
  • 4 个回答
  • 46674 Views
Martin Hope
Michael McGowan
Asked: 2011-03-20 22:27:29 +0800 CST

**不**在 MySQL 中使用 MEMORY 存储引擎的原因是什么?

  • 35

我最近发现 MySQL 有一个我不知道的“内存”引擎(我的大部分数据库工作都是针对业余项目,所以我会边走边学)。看起来这个选项应该会给我带来极大的性能提升,所以我想知道它是否有任何缺点。我知道的两个是:

  1. 我需要有足够的 RAM 来保存有问题的表。
  2. 如果机器关闭,表格将丢失。

我相信 #1 应该不是问题,因为我使用的是 AWS EC2,并且可以根据需要迁移到具有更多内存的实例类型。我相信我可以通过根据需要转储回磁盘来缓解 #2。

还有哪些其他问题?内存引擎能否提供比 MyISAM 或 InnoDB 更差的性能?我想我读到了这个引擎的索引不同的东西;这是我需要担心的事情吗?

mysql storage-engine
  • 7 个回答
  • 50298 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve