kev*_*vin 0 mysql database oracle postgresql
对于非常大的表,索引可能会有很大帮助.但是,对于数据库中的太多小表,解决方案是什么??
如果我有一个大型数据库,其中包含太多表,该怎么办?如何快速查询,因为索引可以帮助加快表的查询?
让我们谈谈一个真实的例子.在stackoverflow.com中,有一张表说." 问题 ".有身份证,约会,投票. 然后在问题表中存在每个id的表.(此表将具有数字ID的名称.例如" q-45588 ")现在很容易索引"问题"表.但是每个问题id的这么多子表怎么样呢.(可能包含ids,答案1,答案2,答案3,评论1,评论2 ......投票,下选票,日期,旗帜,这么多东西)?
这是通常的帐户软件中发生的情况.即.债务人账户表中包含所有债务人的ID,每个账户都有每个表(有债务人的进一步详情)
还是设计问题? *更新*-----------------有些人可能会说在3或4个表中都有(可能有数万亿行),例如问题表,答案表,评论表,用户表.
下面是修改堆栈的一个例子
Catagory of thread:-----info----
Question
Discussion
Catagory of Thread Response:----info-----
A Answer
c comment
Theads:----A table-----
Id (key)
Thread Id number (Long data type)
status (active,normal,closed(visible but not editable), deleted, flagged, etc.
type (Ques / Dis)
votes Up
vots Down
count of views
tag 1
tag 2
tag 3
Subject
body
maker ID
date time stramp of time creation
date time stramp of time last activity
A Answer count
c comment count
Thread: (table name is thread id (long data type) (in Threads table)----A table-----
id (key)
response text
response type ( A Answer / c comment)
vote up
vote down
abuse count
Run Code Online (Sandbox Code Playgroud)
通常,索引旨在通过提供和有序搜索结构来使搜索更快.在一个非常小的表中,由于搜索应该很快开始,它可能没有多大意义.你最好的选择是尝试使用和不使用索引,并相应地进行测量.
话虽如此,如果您的小表具有相同的确切结构,那么将它们合并为单个实体可能更有意义(从RDBMS的角度来看).
| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |