大数据高并发数据库设计注意要点

标签: 大数据 并发 数据库 | 发表时间:2014-02-18 11:32 | 作者:顺其自然EVO
出处:http://www.blogjava.net/qileilove/
 在一个项目实施初始, 数据库的设计非常重要,很多时候,我们只关心和考虑到眼前的功能,而忽略了后续的可维护性和可拓展性,以及还有一个在大数据时代会遇到的高并发问题。
   在设计表结构时要注意以下几个要点:
  1.数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率。
  2.能够用数字类型的字段尽量选择数字类型而不用字符串类型的(电话号码),这会降低查询和连接的性能,并会增加存储开销。这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。
  3.对于不可变字符类型char和可变字符类型varchar 都是8000字节,char查询快,但是耗存储空间,varchar查询相对慢一些但是节省存储空间。在设计字段的时候可以灵活选择,例如用户名、密码等长度变化不大的字段可以选择CHAR,对于评论等长度变化大的字段可以选择VARCHAR。
  4.字段的长度在最大限度的满足可能的需要的前提下,应该尽可能的设得短一些,这样可以提高查询的效率,而且在建立索引的时候也可以减少资源的消耗。
   查询语句优化要点:
  1.尽可能使用索引
  2.查询有先后顺序,注意把快速条件或者索引查询放在前面
  3.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
  select id from t where num=10 or num=20
  可以这样查询:
select id from t where num=10
union all
select id from t where num=20
  4.要避免在where中使用表达式,这样将放弃索引,进行全表查询


顺其自然EVO 2014-02-18 11:32 发表评论

相关 [大数据 并发 数据库] 推荐:

大数据高并发数据库设计注意要点

- - BlogJava-qileilove
数据库的设计非常重要,很多时候,我们只关心和考虑到眼前的功能,而忽略了后续的可维护性和可拓展性,以及还有一个在大数据时代会遇到的高并发问题.    在设计表结构时要注意以下几个要点:.   1.数据行的长度不要超过8020字节,如果超过这个长度的话在物理页中这条数据会占用两行从而造成存储碎片,降低查询效率.

全球10大数据库

- - 译言-电脑/网络/数码科技
原文: Fiorenttini   译者: julie20098. [非商业性转载必须注明译者julie20098和相关链接. ,否则视为侵权,追究转载责任. 世界气候数据中心:气候全球数据中心, 220TB 的网络数据, 6PB 的其它数据. 国家能源研究科学计算中心,有 2.8PB 容量.

大数据量下的SQL Server数据库自身优化

- - Oracle - 数据库 - ITeye博客
  1.1:增加次数据文件.   从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里.   由于CPU和内存的速度远大于硬盘的读写速度,所以可以把不同的数据文件放在不同的物理硬盘里,这样执行查询的时候,就可以让多个硬盘同时进行查询,以充分利用CPU和内存的性能,提高查询速度.

文章: 大数据分析与列数据库

- - InfoQ cn
百度技术沙龙第三十四期:机器学习之多媒体方向的思考(2013年1月12日 周六). 百度技术沙龙特约观察员火热招募中,2013,因为有你更精彩. 性能测试专家,7dtest.com创始人高楼(Zee)主持出品2013北京QCon“优秀测试实践分析”专场. InfoQ《深入浅出Node.js》专栏作者,CNode社区朴灵确认主持并参与分享QCon Node.js专题.

在集群上支持数据库大数据量导出

- - Java - 编程语言 - ITeye博客
数据库表(经过程序处理)导出一般使用EXCEL文件,技术一般有POI、JXL、FastExcel. 但是当文件过大(几十个字段,行数超过200,000)的时候,往往会出现内存溢出OutOfMemery,这个是应用无非承受的. 对于导出这么大量的数据,一般没有实时性的要求,也没有外观的要求. 业务部分的需求一般是:导出80W行数据,不管是什么,最后能变化成EXCEL即可.

MySQL数据库如何解决大数据量存储问题

- - 数据库 - ITeye博客
利用MySQL数据库如何解决大数据量存储问题. 各位高手您们好,我最近接手公司里一个比较棘手的问题,关于如何利用MySQL存储大数据量的问题,主要是数据库中的两张历史数据表,一张模拟量历史数据和一张开关量历史数据表,这两张表字段设计的很简单(OrderNo,Value,DataTime). 基本上每张表每天可以增加几千万条数据,我想问如何存储数据才能不影响检索速度呢.

唯品金融大数据团队的图数据库实践

- -
在大数据时代,社交关系趋于复杂化,越来越多的互联网项目都和社交关系联系起来. 而对社交关系的良好契合,使得图数据库(Graph Database)在互联网领域迅速崛起. 通过图数据库可以高效地进行社交关系查询、分析和数据挖掘,以发现有价值的信息. 近几年互联网金融发展火热,用户对消费分期、现金贷等需求也越来越高.

数据库老兵:大数据时代NoSQL不是颠覆性技术

- - IT经理网
数年前,当人们谈论起新兴的NoSQL数据库技术时,相当一部分观点认为NoSQL在大数据市场取代传统关系型数据库只是个时间问题. 如今,这一预言并未兑现,Mitchell Kertzman的总经理Hummer Winblad认为,大多数情况下,NoSQL都没有展现出所谓的革命性. 作为数据库的老兵,以下是Kertzman在本周的视频 访谈的一些观点摘录:.

高并发操作和查询的数据采集和查询系统的oracle数据库设计建议

- - CSDN博客架构设计推荐文章
(1) 使用分布式垂直切分. 由于已经使用了Oracle RAC 提供分布式的集群服务. 所以对于产生大数据和高并发的表,可以采用数据库垂直分片(比如1-500号集中器的数据采集到数据库A、500-1000到B). 数据分片,是将整体数据分摊在多个存储设备上,这样每个存储设备的数据量相对就会小很多,以此满足系统的性能需求.

数据库sharding

- - 数据库 - ITeye博客
当团队决定自行实现sharding的时候,DAO层可能是嵌入sharding逻辑的首选位置,因为在这个层面上,每一个DAO的方法都明确地知道需要访问的数据表以及查询参数,借助这些信息可以直接定位到目标shard上,而不必像框架那样需要对SQL进行解析然后再依据配置的规则进行路由. 另一个优势是不会受ORM框架的制约.