SQL 数据库似乎是大多数软件的基石。但是,它似乎针对文本数据进行了优化。事实上,在执行任何涉及数字数据(特别是整数)的查询时,将数字转换为文本然后在应用程序和数据库之间以两种方式返回本机格式似乎效率低下。同样的低效率似乎也适用于 BLOB 数据。我的理解是,即使使用 Linq to SQL 之类的东西,这种双向转换也在后台发生。
有没有一般的方法可以用 SQL 绕过这种开销?是否有某些数据库管理系统比其他系统更有效地处理这个问题(即,使用非标准扩展/API)?
澄清。在下面的 select 语句中,IN 之后的数字列表可以更容易地作为 int 的原始数组传递,但似乎无法实现该优化级别。
SELECT foo FROM bar WHERE baz IN (23, 34, 45, 9854004, ...)