中易网

oracle中一个表有多少个列的经典问题

答案:1  悬赏:20  
解决时间 2021-01-13 11:16
  • 提问者网友:轮囘Li巡影
  • 2021-01-12 23:43
oracle中一个表有多少个列的经典问题
最佳答案
  • 二级知识专家网友:孤独入客枕
  • 2021-01-13 00:52
这个问题是个经典问题,也是一个充满辩证的问题
  一个表到底有多少个列?有人说oracle最大允许1000个列,有人说,最好255个列?但是,根据是什么?
  我觉得,一个表到底多少个列合适,应该考虑如下几个方面:
  (1)按照模型设计原则,寻找这个实体型客观上到底有多少个列,这是从逻辑结构的角度来说的
  (2)在完成(1)的设计之后,再做优化考虑,如果这个表的列有点多(多的标准是性能的不满意,或者行长度大于一个BLOCK),那么,考虑一下常用列和不常用列,将他们分拆到两个表中,用相同主键关联;
  (3)一个表的一行记录,应该在一个BLOCK中,这点很重要,不然数据读写的IO太多,性能严重不行,所以,这是原则要求,一个行要能放到一个BLOCK中
  (4)一些表,字段很少,比如新浪主页,我们要存在一张表中,假设是标题,内容两列,但是标题很短,30个汉字,内容却很多,2000个汉字,但全表2个列,是不是就放在一起呢?不是的!!
  要记住,一个表的记录的读取,是以一个BLOCK块为单位进行读取的,而且一个行是完整获取的!
  意思是说,如果我把标题和内容放在一个表中,即使我只查看标题信息,那在读取标题列时,也会把同一行的内容一起读取出来到内存了,这样内容的IO开销是多余的,而且是太多,还占用大量的内存
  此时,要考虑,将标题放一个表, 将内容放另一个表,他们用相同的主键惯量!
  这样,当你浏览主页的时候,首先看到的标题,就从标题表中读取,占用空间少,减少了很多IO
  而后,当你喜欢某个主题之后,在想阅读内容时,你就可以再从内容表中选择出感兴趣的内容,IO就高效了!性能就好了!
  所以,综合上述考虑吧
  这是一个经典问题,是个充满辩证的艺术性问题!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息