参加2011数据库技术大会心得
时间:2011-04-21 来源:与您分享我的快乐 ---笨笨
首先很感谢公司给我参加数据技术大会的机会。参加这次大会主要是一些从事DBA相关的技术工程师,分享经验的技术人员都是新浪、淘宝、百度等大企业的高级工程师,我做为一个开发人员参加这次会议,也有颇多感触,针对这次会议,说一下我的心得。
这次会议讲的主要内容有如下几个方面:
一.分布式存储、分布式数据库的应用
讲这个方面的主题有:基于MySQL的分布式数据库实践(新浪微博)、dbShards数据库拆分-数据库加速和横向扩展的新策略、伪分布式的架构设计(五分钟网络)等,他们都是从实际应用的角度分析了他们在这方面的经验以及实现的理论。例如新浪微博:简述分布式数据库设计中的sharding策略:replication和partitioning;为MySQL添加Cache系统更好的实现高并发的读写服务,同时减少应用开发复杂度;通过使用MySQL和NoSQL结合的部署结构来实现热点数据的更高效访问; 在高并发写入数据库时,使用消息队列的方式,缓存要插入数据库的数据。从而提高写的性能。
二.数据库系统优化方案
在数据库优化中,其实有很多要注意的问题,甚至从项目一开始应该考虑这些问题。现在大多公司在开发项目中都是先设计数据库,然后开发实现功能需求。很少会考虑优化,只能当系统的性能不能满足需求的时候才会考虑到优化问题。其实如果从项目的一开始,在开发的过程大家都注意这样的问题,更能从根本上解决问题。例如在系统开发之前就把业务相关的sql写好,写sql的时候也有很多要注意的问题,要减少sql的硬解析,对于标量子查询可以通过函数实现。当然也要创建索引,但索引并不是建的越多越好,建的多元数据也会增多,在某种程序会造成latch竞争,导致性能的瓶颈。所以创建索引是要根据实现的sql语句进行分析列的使用情况,离散情况合理的创建。对于sql的性能也可以通过执行计划来查看性能。还有就是数据库设计时合理的创建数据冗余字段,也是提高性能的一种办法。
三.数据库数据的迁移与备份
有几个主题都提到了数据库数据的迁移或者备份,淘宝的丁原主要说了以下九种方案。
1. Exp/imp/expdp/impdp
2. Insert into table select * from table@dblink
3. Select * from table into outfile/load data(mysql)
4. Extent->rowid
5. Mv refresh
6. Sqluldr/load data
7. Rowid(pkid)/procedure
8. Perl
9. Tddl数据层
四.oracle中一些复杂sql的运用
在开发的过程,有时候会有很复杂的业务,用标准sql很有可能处理不了,我们一般都会选择程序处理,其实我们还有别的方法,例如使用存储过程,使用分析函数等。向一些批量的数据更新,复杂查询就可以使用存储过程,在sql查询中还可以使用正则表达式查询(在oracle,mysql,sqlserver中都可以使用)。
大会相关的资源:
http://www.itpub.net/thread-1419955-1-1.html
参加个大会还要写个心得。。头疼
2011-04-21