最近和同事讨论一个数据库字符串存储html的问题。现在的系统中存储的方式是:
<div>
<a>fasdfasdfasdf,</a>
……
<div>
同事的建议是把它写成一下格式:
<div><a>fasdfasdfasdf,</a>……<div>
至于原因是这样可以节省很多存储空间。
我当时就直接说,第一这个表现在数据量不大(行数少),预期以后数据量也不会大。所以就是把格式写成那样子也不会节省多少存储空间,假设最后能节省一个G,加上备份空间,现行方式最多节省,100几十G的空间;而且现在这种方式很方便debug,你一看就知道这个html节有没有那些地方是少了东西的,标签没关闭之类的。
其实我还遇到过很多有这种想法的事情。比如,在系统写入数据库慢的情况下,有人会提出先写文件,再回写到数据库;又比如,程序写在一起会跑的快一点。
先看第一个。我个人从来不建议写文件,因为,很多人包括我自己,都没办法达到这种水平。为什么了?因为如果用文件代替数据库那么你需要解决的问题有:1、文件的独占问题(程序一定要独占文件)2、文件并发写问题(没有并发写,我想这个肯定很悲剧)3、事物突然中断问题。等等。那么怎么解决系统写入数据库慢的问题了?批量提交。可以使用的方式有消息队列、本地存储(memcache)、nosql数据库作为中间库等。
后面那一个我就不说了。
但是纵观上面的说法是不是曾经都是对的了?是的,但是现在已经不对了,所以我们很多时候需要跟上时代,与时俱进。可以不懂具体的技术,但是总要知道具体的技术。