目前我正在使用后端 MySQL 开发应用程序,但将来我需要编写所有业务逻辑以使用 SAS。
所以请建议我应该使用哪些常见数据类型来避免跨基于 SQL 的引擎和 SAS 的数据类型不匹配问题。例如,SAS 仅将 Numeric 用于 int/double,而基于 SQL 的引擎具有不同的数据类型。如果我对 SQL 中的所有字段使用 DECIMAL 会影响我的存储过程的执行时间吗?
额外信息:我的数据库将在每个表中包含数百万行。
目前我正在使用后端 MySQL 开发应用程序,但将来我需要编写所有业务逻辑以使用 SAS。
所以请建议我应该使用哪些常见数据类型来避免跨基于 SQL 的引擎和 SAS 的数据类型不匹配问题。例如,SAS 仅将 Numeric 用于 int/double,而基于 SQL 的引擎具有不同的数据类型。如果我对 SQL 中的所有字段使用 DECIMAL 会影响我的存储过程的执行时间吗?
额外信息:我的数据库将在每个表中包含数百万行。
您应该查看 SQL-92,它有点过时并且有更新的标准(例如 SQL:1999)但是 AFAIK 大多数 RDBMS 应该至少使用其中的子集。
至少这些应该没问题:
对于每种数据类型,您必须检查它分配的内存。这肯定会影响您的执行性能,而不仅仅是 SQL Server。例如,如果使用 INT,则 JOIN 非常快,如果使用 NUMERIC,则可能足够快,但我不建议将它用于 VARCHAR(CHARACTER VARYING)。在你的情况下,如果你使用 DECIMAL 它肯定会影响性能,但问题是:你会注意到吗?
我认为您应该专注于查询优化,尽可能地坚持 SQL-92 并解决最终的问题。