大数据量的系统的数据库结构如何设计?
来源:互联网 发布:光纤 网络销售 编辑:程序博客网 时间:2024/05/18 20:52
<script type="text/javascript"><!--google_ad_client = "pub-3254020074528490";/* 728x90, 创建于 08-7-28 */google_ad_slot = "4707384325";google_ad_width = 1680;google_ad_height = 90;//--></script>
2、把不同类型的分成几个表,纵向切分
3、常用联接的建索引
4、服务器放几个硬盘,把数据、日志、索引分盘存放,这样可以提高IO吞吐率
5、用优化器,优化你的查询
6、考虑冗余,这样可以减少连接
7、可以考虑建立统计表,就是实时生成总计表,这样可以避免每次查询都统计一次
8、用极量数据测试一下
数据仓库解决的是数据挖掘,共享,和大数据量存储有什么根本关系?
mrzxc 等说的好,考虑你的系统,注意负载平衡,查询优化,25 万并不大,可以建一个表,然后按mrzxc 的3 4 5 7 优化。
速度,影响它的因数太多了,且数据量越大越明显。
1、存储
将硬盘分成NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你可以采用多数据库文件,这样可以将存取负载分散到多个物理硬盘或磁盘阵列上。
2、tempdb
tempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID 0上,这样它的性能最高,不要对它设置最大值让它自动增长
3、日志文件
日志文件也应该和数据文件分开在不同的理硬盘或磁盘阵列上,这样也可以提高硬盘I/O性能。
4、分区视图
就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,如果你数据库不是访问特别大不建议使用。
5、簇索引
你的表一定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽量减少对它的updaet,应为这可以使它物理不连续。
6、非簇索引
非簇索引与物理顺序无关,设计它时必须有高度的可选择性,可以提高查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,如果你愿意用空间和修改时间换取速度可以考虑。
7、索引视图
如果在视图上建立索引,那视图的结果集就会被存储起来,对与特定的查询性能可以提高很多,但同样对update语句时它也会严重减低性能,一般用在数据相对稳定的数据仓库中。
8、维护索引
你在将索引建好后,定期维护是很重要的,用dbcc showcontig来观察页密度、扫描密度等等,及时用dbccindexdefrag来整理表或视图的索引,在必要的时候用dbcc dbreindex来重建索引可以受到良好的效果。
不论你是用几个表1、2、3点都可以提高一定的性能,5、6、8点你是必须做的,至于4、7点看你的需求,我个人是不建议的。打了半个多小时想是在写论文,希望对你有帮助。<script type="text/javascript"><!--google_ad_client = "pub-3254020074528490";/* 728x90, 创建于 08-7-28 */google_ad_slot = "4707384325";google_ad_width = 1680;google_ad_height = 90;//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
1、把你表中经常查询的和不常用的分开几个表,也就是横向切分 2、把不同类型的分成几个表,纵向切分
3、常用联接的建索引
4、服务器放几个硬盘,把数据、日志、索引分盘存放,这样可以提高IO吞吐率
5、用优化器,优化你的查询
6、考虑冗余,这样可以减少连接
7、可以考虑建立统计表,就是实时生成总计表,这样可以避免每次查询都统计一次
8、用极量数据测试一下
数据仓库解决的是数据挖掘,共享,和大数据量存储有什么根本关系?
mrzxc 等说的好,考虑你的系统,注意负载平衡,查询优化,25 万并不大,可以建一个表,然后按mrzxc 的3 4 5 7 优化。
速度,影响它的因数太多了,且数据量越大越明显。
1、存储
将硬盘分成NTFS格式,NTFS比FAT32快,并看你的数据文件大小,1G以上你可以采用多数据库文件,这样可以将存取负载分散到多个物理硬盘或磁盘阵列上。
2、tempdb
tempdb也应该被单独的物理硬盘或磁盘阵列上,建议放在RAID 0上,这样它的性能最高,不要对它设置最大值让它自动增长
3、日志文件
日志文件也应该和数据文件分开在不同的理硬盘或磁盘阵列上,这样也可以提高硬盘I/O性能。
4、分区视图
就是将你的数据水平分割在集群服务器上,它适合大规模OLTP,SQL群集上,如果你数据库不是访问特别大不建议使用。
5、簇索引
你的表一定有个簇索引,在使用簇索引查询的时候,区块查询是最快的,如用between,应为他是物理连续的,你应该尽量减少对它的updaet,应为这可以使它物理不连续。
6、非簇索引
非簇索引与物理顺序无关,设计它时必须有高度的可选择性,可以提高查询速度,但对表update的时候这些非簇索引会影响速度,且占用空间大,如果你愿意用空间和修改时间换取速度可以考虑。
7、索引视图
如果在视图上建立索引,那视图的结果集就会被存储起来,对与特定的查询性能可以提高很多,但同样对update语句时它也会严重减低性能,一般用在数据相对稳定的数据仓库中。
8、维护索引
你在将索引建好后,定期维护是很重要的,用dbcc showcontig来观察页密度、扫描密度等等,及时用dbccindexdefrag来整理表或视图的索引,在必要的时候用dbcc dbreindex来重建索引可以受到良好的效果。
不论你是用几个表1、2、3点都可以提高一定的性能,5、6、8点你是必须做的,至于4、7点看你的需求,我个人是不建议的。打了半个多小时想是在写论文,希望对你有帮助。<script type="text/javascript"><!--google_ad_client = "pub-3254020074528490";/* 728x90, 创建于 08-7-28 */google_ad_slot = "4707384325";google_ad_width = 1680;google_ad_height = 90;//--></script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 大数据量的系统的数据库结构如何设计?
- 大数据量的系统的数据库结构如何设计?
- 大数据量的系统的数据库结构如何设计?
- 大数据量的系统的数据库结构如何设计
- 大数据量的系统的数据库结构如何设计?
- 大数据量的数据库设计
- 大数据量的数据库设计
- 大数据量高并发访问数据库结构的设计
- 大数据量的数据库表设计技巧
- 关于大数据量的数据库设计问题
- 高并发大数据量的数据库的设计与优化
- 数据库大数据量的操作
- 数据库大数据量的处理
- 大数据量的数据库表如何存放ID
- 大数据量下的数据库查询与插入如何优化
- 大数据量快速处理的架构设计
- 大数据量高并发的数据库优化
- 大数据量高并发的数据库优化
- SDL入门教程(十三):3、封装多线程
- 关于项目
- 如何让你的SQL运行得更快
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】中断服务下半部之工作队列详解
- IIS连接量指什么
- 大数据量的系统的数据库结构如何设计?
- 一些网上密码学资源(1)------密码综述
- Oracle锁定和解锁用户的命令
- 一些网上密码学资源(2)-对称加密算法
- Client和Host均为Asp.net的WCF服务系统
- 一些网上密码学资源(3)-非对称算法
- 一些网上密码学资源(4)-散列算法
- 一些网上密码学资源(5)-消息认证
- 一些网上密码学资源(6)-随机数生成