对于任何大小的数据,blob是否比varchar更有效?


9

设置数据库时,我想对可能相当长的数据使用最有效的数据类型。目前,我的项目是存储有关该歌曲的歌曲标题和想法。有些标题可能是5个字符或超过100个字符,并且想法可能会持续很长时间。

使用varchar设置为8000还是使用Blob更有效?使用blob与varchar一样,因为有一个固定大小的分配对象,而不管它持有什么大小?还是只是一个指针,它实际上并没有在表上占用太多空间?Blob是否有特定的大小设置,还是可以扩展?

Answers:


12

我建议在BLOB上使用TEXT

主要差异

  • TEXT和BLOB存储在表外,该表仅具有指向实际存储位置的指针。

  • VARCHAR与表内联存储。

主要准则

  1. 文本格式的消息几乎应始终存储为TEXT(它们最终会任意长)

  2. 字符串属性应存储为VARCHAR(目标用户名,主题等)。


在这些线程的堆栈溢出中,已经广泛讨论了选择何时使用VARCHAR和何时使用TEXT的问题:

  1. MySQL:大型VARCHAR与TEXT?

  2. MySQL varchar(2000)vs文字?

MySQL论坛上还有一个性能比较线程


谢谢您的那些链接。他们回答了我的一些问题,但最终我还是使用了TEXT。就它在服务器上占用的物理空间而言,这并不是我一直在寻找的东西,但是我想只要它只是一个很小的项目就没有关系。以后,如果我开始做更大的项目,我将需要找出答案。
BillyNair 2012年

0

我认为只有在序列化了复杂数据类型的情况下才应使用blob,也就是说,要在一个表中存储一个复杂类。如果只想存储字符串(或等效的东西),请不要使用blob。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.