将大型列(VARCHAR)添加到MySQL表会对性能产生重大影响吗?

时间:2014-11-02 12:47:34

标签: mysql database web-applications

如果这个问题有点新鲜,我很抱歉,我对数据库知之甚少。

我正在开发基于Web的应用程序来管理组织用户。记录数量为10,000-20,000。我想在表格中添加另一列,以便员工可以在用户记录中添加注释,以防万一。我认为这不会经常使用。

将VARCHAR列添加到表中会对数据库产生显着的性能影响吗?您是否建议将注释分离到另一个表,与用户表关系?

1 个答案:

答案 0 :(得分:1)

添加大型varchar()可以对性能产生影响,但不一定如此。这里的关键思想是将数据存储在数据库中的页面上。读表需要读取包含记录的所有页面。通常,许多记录适合单个页面。如果记录非常大,则页面上只有少数记录。这可能会影响性能,因为需要读取更多页面(对于某些查询)或者记录并非都适合内存。

无论如何,有减轻情节:

  • 您可以拥有该字段并且永远不会填充它。因此,记录大小永远不会很大。
  • 您所有的查询都是“大海捞针”查询,您只使用索引来获取一条或几条记录。
  • 如果您实际将列存储为text,则它是一个单独分配的对象。
  • 如果您只有“少数”用户,那么总数据量很小(比如以几兆字节为单位),那么性能可能不是问题。

还有一些方法可以降低性能,例如将较长的列放在单独的表中。

因此,对性能的影响取决于数据库的整体大小,结构以及使用方式。