简单研究了一下BLOB/TEXT字段对数据库性能的影响,得到一个大概的结论:(未验证)
- 无论MySQL还是MSSQL,都可以通过把BLOB/TEXT数据存储在行外的方式提高性能
- 把BLOB/TEXT字段单独建表保存其实意义不大,增加复杂度,而且性能比行外存储的方式提升微乎其微
- 行外存储的这种设计方式,在查询的时候不获取BLOB/TEXT字段,可以获得高性能
一些参考资料:
https://dzone.com/articles/blob-storage-innodb
https://stackoverflow.com/questions/13760998/store-text-blob-in-same-table-or-not
https://stackoverflow.com/questions/2023481/mysql-large-varchar-vs-text
https://www.cnblogs.com/chenxizhang/archive/2009/04/23/1441948.html
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/ms189087(v=sql.105)