我正在从linux / proc fs中读取几个文件,我将不得不在数据库中插入这些值。我应该尽可能地优化。那么什么更便宜:
i)然后将int转换为int,然后我将其存储在内存中,以便稍后在构建INSERT语句时再次转换为字符串
ii)或将它们保存为字符串,只需清理值(删除':',空格等......)
iii)我应该考虑什么来学习做出这个决定?
我已经在排队了,因为他们来的顺序对我来说不够好。
谢谢,
佩德罗
修改 - 澄清
对不起伙计们,我的情况如下:我每隔10秒测量一次CPU,内存,网络,磁盘等。我们正在开发我们的数据库系统,所以除了INSERT语句之外我不能算什么。
我对此优化感兴趣,因为关闭解析数据的频率。它将被写入一次 - 在写入数据后将不会对数据进行更新。
答案 0 :(得分:2)
您似乎正在执行一些归档活动[一次写入,可能只读取一次](存储数据库以供以后稀有/非频繁使用),如果没有,您应该将优化强调基于如何读取数据(未写入)。
如果这是归档案例,那么将DBOB(二进制大对象,[或类似概念])分配到DB中会更有效。
<强>增加:强>
显然,这将取决于您将如何读取数据。您是否稍后将列出数据用于浏览目的,或者基于基准值将会有更复杂的提取查询。
例如,如果您稍后执行类似:SELECT * from db.Log WHERE log.time > time1 and Max (Memory) < 5000
之类的操作,那么最好将每个数据保留为其原始格式(int为整数,字符串为String等),以便将主数据处理留给DB服务器。