所有数据库中的通用数据类型应该是什么

时间:2013-08-03 13:18:07

标签: mysql sql sql-server oracle sas

目前我正在开发一个带有后端MySQL的应用程序,但将来我需要编写所有业务逻辑来与SAS合作。

所以请建议我应该使用哪些常见数据类型来避免基于SQL的引擎和SAS的数据类型不匹配问题。例如,SAS仅对int / double使用Numeric,而基于SQL的引擎对它们使用不同的数据类型。如果我对SQL中的所有字段使用DECIMAL会影响我的存储过程的执行时间吗?

额外信息:我的数据库每个表中都有数百万行。

1 个答案:

答案 0 :(得分:0)

You should look at SQL-92,它有点过时,并且有更新的标准(例如SQL:1999),但AFAIK大多数RDBMS应该至少使用它的子集。

至少这些应该没问题:

  • CHARACTER
  • CHARACTER VARYING
  • BIT
  • NUMERIC
  • DECIMAL
  • INTEGER
  • SMALLINT
  • FLOAT
  • REAL
  • DOUBLE PRECISION
  • DATE
  • TIME

对于每种数据类型,您必须检查它分配的内存。这肯定会影响执行的性能,而不仅仅是SQL Server的性能。例如,如果使用INT,则JOIN非常快,如果使用NUMERIC,则可以足够快,但我不建议将其用于VARCHAR(CHARACTER VARYING)。在你的情况下,如果你使用DECIMAL它肯定会影响性能,但问题是:你会注意到它吗?

我相信您应该专注于查询优化,尽可能贴近SQL-92并随时解决最终问题。