数据库设计 - 存储日志,哪种数据类型?

时间:2013-01-25 10:21:13

标签: sql-server database database-design logging

我应该为API请求/响应存储日志的数据类型?

(我不知道未来,要存储的字符串的长度)

1 个答案:

答案 0 :(得分:0)

恕我直言,NOSQL数据存储可能非常适合这种情况。如果您使用不同的API调用,使用不同的参数,则MongoDBRavenDB等数据库的无模式特性将非常适合。

关于在SQL Server中存储,粗略的方法是使用NVARCHAR(MAX)来存储字符串(最大2GB)。这可以作为纯日志提供,但如果您想轻松搜索该数据(监视/分析目的),则不理想。您可以使用XML并以更结构化的形式存储每个API调用的数据

e.g。

<MyApiCall>
  <Param1>SomeValue</Param1>
</MyApiCall>

然后可以将其编入索引并稍微查询一下。

有一个元素是“您想对日志数据做什么”。我假设您从数据库的角度提问,这意味着您希望对该数据进行某种形式的分析/查询(否则您只能登录到标准文件)。

对我来说,底线是一个NOSQL,无模式数据库非常适合我的建议。