不推荐存储的数据类型
-
二进制多媒体数据,将二进制多媒体数据存放在数据库中,一个问题是数据库空间资源耗用非常严重,另一个问题是这些数据的存储很消耗数据库主机的CPU资源。这种数据主要包括图片、音频、视频和其他一些相关的二进制文件。这些数据的处理本不是数据的优势,如果我们硬要将他们塞入数据库,肯定会造成数据库的处理资源消耗严重。
-
流水队列数据,数据库为了保证事务的安全性(支持事务的存储引擎)以及可恢复性,都是需要记录所有变更的日志信息的。而流水队列数据的用途就决定了存放这种数据的表中的数据会不断的被 INSERT、UPDATE 和 DELETE,而每一个操作都会生成与之对应的日志信息。在MySQL中,如果是支持事务的存储引擎,这个日志的产生量更是要翻倍。而如果我们通过一些成熟的第三方队列软件来实现这个 Query 数据的处理功能,性能将会成倍的提升。
-
超大文本数据,对于 5.0.3 之前的 MySQL 版本,varchar 类型的数据最长只能存放 255 个字节,如果需要存储更长的文本数据到一个字段,我们就必须使用 text 类型(最大可存放 64KB)的字段,甚至是更大的 longtext 类型(4GB)。而 text 类型数据的处理性能要远比 varchar 类型数据的处理性能低下很多。从 5.0.3 版本开始,varchar 类型的最大长度被调整到 64KB 了,但是当实际数据小于 255Bytes 的时候,实际存储空间和实际的数据长度一样,可一旦长度超过 255Bytes 之后,所占用的存储空间就是实际数据长度的两倍。对于超大文本数据的存储,如果说是特殊情况可以使用 BLOB,但是通常来说推荐使用 varchar 保存文本的路径,而文本存放在于保存的路径一致的地方,二进制媒体数据也是一样。