大量数据的设计小技巧

1:建立分区

随着表的增大,对它的维护也更加困难。在非常大的数据库中,可以通过把一个大表的数 据分成多个小表来大大简化数据库的管理活动。例如,可以根据表中的部门或产品值把一个表 分成独立的小表。 注意分分区只对拥有并安装了分区选项的企业是可用的。 当把一个大表分成若干小表时,可以规定一些范围值供数据库使用,这些称作分区 ( p a r t i t i o n )的小表比大表的管理更加简单。例如,可以完全删除( t r u n c a t e )一个分区的数据而不会 删除其他分区中的数据。O r a c l e将把分区表看作一个大表,但可以把这些分区作为一些独立的对 象来管理。 分区还可以改善应用性能。由于优化器将知道作为分区基础使用的范围值,所以它在访问 表时就可以只使用特定的分区直接查询。因为在查询过程中只浏览少量数据,自然就改善了查 询性能。 除了表外,也可以对索引进行分区,一个分区索引的分区中的范围值可以与索引表使用的 范围相匹配,这种情况的索引叫作局部索引(local index)。如果索引分区不能与表分区的值范围 相匹配,则该索引就叫作全局索引(global index)。 在O r a c l e 8 i中,能够细分分区,创建子分区。例如,可以先根据一组值分割一个表,然后再 根据另一种分割方法分割分区。在O r a c l e 9 i中,除了范围分区与哈希分区之外,还可以创建目录 分区(list partitions)。有关分区、子分区、局部索引和全局索引的管理问题。

2: 主要为了防止遍历表查询。
比如 LEFT JOIN, RIGHT JOIN 。这些查询如果能用冗余避免则应尽力避免。
INNER JOIN 则不用担心了。
而且表设计的时候应当尽量避免出现 LEFT JOIN 。

3:减少表关联,可增加冗余字段,通过空间来换时间

假如一个论坛库中有用户信息表tbUsers有下列字段 user_id(用户信息编号),user_name(用户名),user_nick(用户昵称)
贴子表tbTopics tpic_id(贴子信息编号),tpic_title(贴子主题),tpic_content(贴子内容),user_id(用户编号)
在实际的贴子显示过程中,我们要在贴子中显示用户昵称时,都是通过tbTopics表中的user_id和tbUsers表进行关联来获取user_nick信息。
上面的两个表的表结构设计根据设计范式不存在问题,但是如果这个论坛的访问量大的话,表的关联的代价就出来了,因为两表关联比访问一个表的代价要大。
因此,我们可以采取在tbTopics表中增加一个冗余字段user_nick,这样显示贴子时不再需要和表tbUsers进行关联了即SELECT * FROM [tbTpocs]即可,不需要SELECT t.*,u.user_nick FROM tbTpoics t LEFT JOIN tbUsers u ON t.user_id=u.user_id来显示获取贴子数据进行显示.

时间: 2024-10-02 13:35:12

大量数据的设计小技巧的相关文章

IOS开发之代理的设计小技巧

1.关于代理对象的设计小技巧 在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据.那么在这里设计使用代理会有两种方法. <第一种方法> 也是比较常见的: 在你设计的类中,声明一个代理属性 然后外部使用的时候 最后根据那个<...Protocol>协议,去遵循这个协议并实现协议的方法. <第二种方法>在创建这个你要设计的类对象的构造方法中添加一个代理对象的参数,目的就是按照需要,你如果要创建这个对象,你必须添加代理对象. 这样外部在创建这个对象的时候,使用这个方

12个不为大家熟知的HTML5设计小技巧

慎用向右滑动操作.慎用横屏展示效果.按钮原理页面底部.使用SVG格式做矢量图-- 以上提到的技巧全都出自今天这篇好文,简单小巧但实操性很强,作为设计师,也要尽量避开这些坑. 1.交互上,慎用向右滑动的操作方式. 如:刮刮乐涂抹效果,左右滑动翻页等. 原因:苹果手机上,向右滑动容易触发返回"上一级页面"效果. 2.交互上,慎用横屏展示效果. 原因:体验上,需要用户设备开启屏幕旋转功能,才能正常观看,用户操作成本高.对不同屏幕的手机,长宽比例不一,难以展示最佳的视觉效果. 3.视觉上,功能

六个简单而有创意的网站设计小技巧

创意并不是说有就有的,而且也不是随手就可以得到的,尤其是哪些每天都需要创意的设计师来说,灵感的昙花一现是不够的,也不能支撑工作的使用.但是在设计行业的设计师们都会有自己的一些特别的技巧,那么在网站制作过程中,想要获得创意有哪些设计方法呢?下面就一起来分享一下有哪些创意的方式. 第一.将创意直接展示出来.这是创意设计最常见的一种手法,具体的做法就是可以将产品或者想要表达的主题直接地真实地展示在广告位上,同时使用摄影或者绘画的技巧来加强写实的表现能力.细致地描写产品的质感,将产品的形态以及功能全面地

APP图标设计小技巧:在iOS上快速获得APP图标的真实预览图

严格来说,这并不是一篇关于前端开发的文章,因为涉及到的知识非常浅.这只是一个向设计狮们分享的小经验,只是其中用到了一些前端内容. 最近接了个私活,了解到一个初创公司正在高价悬赏Logo(主要用于APP图标),我便投稿试了试,结果真的被选中了,得到了我认为远超Logo本身价值的奖金(看来跟着拿到投资的初创公司混真的有肉吃啊).闲话不表,设计完Logo之后我灵机一动,用iOS系统做了一个APP图标真实效果预览图,一起发给了甲方. 我们假设刚做好的Logo是下面这样的(这是样例图标,用我开发的UWP应

C# WinForm DataGridView界面设计小技巧

在窗口中表格是非常常见的数据显示形式,所以界面的展示效果非常重要,通过多次的使用之后发现C# WinForm DataGridView控件默认的显示样式非常之反人类,不过好在可视化操作只需几个简单的属性修改就能得到很好的效果. 下面请看生成的默认属性的DataGridView显示: 非常之反人类的表格. 开始修改下面几个通过名字就能够读懂的属性(当然是通过VS属性窗口修改,也可以在初始化代码中手动修改DataGridView的属性): AllowUserToAddRows=False; //不同

Wireshark 抓包仅保存当前过滤数据包的小技巧分享

如果你在抓包的时候只想保留当前经过显示过滤匹配的数据包,怎么做呢? 如图,我只想当前过滤后的数据包可以选择 "导出特定分组" (Wireshark 2.x版本默认支持中文了) 然后就可以保存指定的数据报文了. .

python 数据迭代添加小技巧

1.list中extend方法有趣现象 1.1 List+=Str 与 List.extend(Str) 1 list1 = [11,2,45] 2 str1 = 'Michael' 3 list1.extend(str1) 4 print(list1) #list结果是[11, 2, 45, 'M', 'i', 'c', 'h', 'a', 'e', 'l'] 5 # 6 list1 += str1 7 print(list1) #list结果是[11, 2, 45, 'M', 'i', 'c

《企业云桌面实施》-小技巧-08-建筑设计行业-真实效果-漫游动画-三维视图渲染

<企业云桌面实施>-系列博文-陆续更新中 **************************************************************************************************** <企业云桌面实施>-小技巧-01-规划注意事项 http://dynamic.blog.51cto.com/711418/1884922 <企业云桌面实施>-小技巧-02-使用ISO光驱安装esxi6.5http://dynami

iOS开发&gt;学无止境 - 6个iOS图片文本设计的小技巧

英文:TOPE 作者:星夜暮晨 网址:http://www.jianshu.com/p/88263196fdf0 设计师们似乎拥有着我们这些开发者所没有的“魔力”,他们知道如何让一个应用的界面看起来非常得舒适,以至于有时让我们有了迫不及待将其复现的冲动. 然而,几天过去了,我们仍然还停留在设计稿的第一个界面,写下大段大段的代码,可是界面却不是我们想要的那个样子,这无疑是非常让人恼火的一件事情. 好消息是设计师们的“魔力”并不是我们想象中的那么神奇,有一些关于设计的小技巧.只要掌握了它们,我们就能