数据库设计的初级问题

tjuzhangrui 2010-11-24 05:06:55
问题描述:
1、要进行1项或多项测试,测试会周期性地产生测试结果。
2、测试创建的频率较低,测试结果生成的频率很高,要经常性地进行插入操作,大概1秒生成一个结果。
3、选中一个测试,可以查找到它的测试结果,查找频率较低。
4、测试结果大概会有百万条数据。


我是初学者

现在对这个问题是这样分析的

1、生成2个表,一个测试 TestInstance ,另一个是测试结果 TestResults
2、TestInstance带有主键 ID,TestResults将TestID = ID作为外键
3、根据测试查找测试结果的时候就用 select * from TestResult where TestID = ID


问题
我觉得这样做插入的性能会比较高,但查找的性能会很低,因为所有的结果都放在一个表里,应该如何设计?兼顾查找和插入性能。谢谢!




...全文
155 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjuzhangrui 2010-11-24
  • 打赏
  • 举报
回复
先不考虑分区表啊,就简单的建表索引这类的操作。
oracle_dba_11 2010-11-24
  • 打赏
  • 举报
回复
这么大的数据量还频繁的插入删除。建立索引效果也不太好。用分区表吧
清风智语 2010-11-24
  • 打赏
  • 举报
回复
使用事务时必要的
其次需要在主表和从表上建立相应的索引。
如果数据量很到的话可以考虑使用分区表来处理
关于分区表,可以参考这里:Oracle 分区表
YY_MM_DD 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用楼主 tjuzhangrui 的回复:]
问题描述:
1、要进行1项或多项测试,测试会周期性地产生测试结果。
2、测试创建的频率较低,测试结果生成的频率很高,要经常性地进行插入操作,大概1秒生成一个结果。
3、选中一个测试,可以查找到它的测试结果,查找频率较低。
4、测试结果大概会有百万条数据。


我是初学者

现在对这个问题是这样分析的

1、生成2个表,一个测试 TestInstance ,另一个是测试结果 T……
[/Quote]

建立分区表呢?
ngx20080110 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tjuzhangrui 的回复:]
另外插入时每秒插入一次结果是否会有性能影响?是否应该用事务来操作?
[/Quote]
性能要追求平衡,想查詢快就要用索引,索引多了,插入,更新,刪除就相應慢了
ngx20080110 2010-11-24
  • 打赏
  • 举报
回复
不太懂樓主的需求
tjuzhangrui 2010-11-24
  • 打赏
  • 举报
回复
另外插入时每秒插入一次结果是否会有性能影响?是否应该用事务来操作?

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧