jag*_*mot 2 java database oracle database-design
我在Oracle中有一个表,目前存储了近百万条记录.该表有2个CLOB列,用于存储XML数据.我还为这个特定的表构建了一个搜索屏幕,用户可以搜索除CLOB列之外的所有列.
现在这是我的问题 -
假设我在频繁搜索列上有正确的索引,表中是否存在CLOB列会影响性能,同时在表中搜索记录吗?
让我们说如果我将这两个CLOB列移动到一个新表中并使用主键定义与其父表的关系,它将改善记录搜索和检索方面的性能.
让我知道.
LOB(包括CLOB)可以内联或外联存储.对于较小的CLOB,内联存储更为正常(例如,典型值可能是几百个字节,但偶尔有几千个条目).更多细节在这里
外部存储对应于您将这些CLOB移动到新表的说法.所以,不要打扰这样做,如果它有帮助,只需使用"行中的禁用存储"选项.
哪个更好 ?这取决于.如果没有,那么Oracle会选择最好的,而不是给你另一个选项.
存储内联意味着每行占用更多空间,因此您可以在内存缓存中拥有更少的行,这意味着您需要更频繁地访问磁盘,这样会更慢.单独存储它们意味着,当您需要这些列时,您需要获取其他数据块,可能来自磁盘而不是缓存,这将更慢.
如果你经常使用CLOB,并且它们很小,那么你可能会在行内更好.
但为什么将XML存储为CLOB而不是XMLType?