数据库调优过程(三):提高数据库写入性能方案调查
- 客户给出建议方案:
- 一直听客户这边说mycat这个东东,一头雾水,这是什么东东,只听说过mysql不知道mycat,瞬间被鄙视N次方次。
- 客户提到数据库分片、表复制能提高数据库性能,但可惜对这些技术好像不知道,只知道表分区,不知道分片,知道表批量复制,可以被订阅推送等,及主从复制,不知道这里说的表复制到时所谓什么技术。
- 客户提到MongoDB,PostgreSQL比较强悍,基本上可以实现集群型结构,表分片相关复制相关技术,但到底在实际应用中怎么是个怎么运行的。
sql优化书籍:https://www.simple-talk.com/books/sql-books/troubleshooting-sql-server-a-guide-for-the-accidental-dba/
带着上边的问题,我认真的查阅了网上对这些技术的一些评价:
- mycat是国人的,是一个数据库分库分表中间件。
背景:
基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。
特性:
- 一个彻底开源的,面向企业应用开发的大数据库集群
- 支持事务、ACID、可以替代MySQL的加强版数据库
- 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群
- 一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server
- 结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品
- 一个新颖的数据库中间件产品
官网:http://www.mycat.org.cn/
代码:http://git.oschina.net/linzhiqiang/Mycat-Server,https://github.com/MyCATApache/Mycat-Server,https://github.com/MyCATApache/Mycat-download
相关参阅文章:
开源分布式数据库中间件MYCAT:http://blog.oldboyedu.com/mysql-mycat/
MyCat:开源分布式数据库中间件:http://www.csdn.net/article/2015-07-16/2825228
- MongoDB
几年前就对它有耳闻,只是知道是一个nosql数据库,知道存储格式json化,是一个文件数据库。
MongoDB支持分片:
具体实现:http://my.oschina.net/ydsakyclguozi/blog/268377
-
PostgreSQL
这个东西了解的少,这几天一直听客户说这是一个有点类似mycat的数据库中间件,它有很多plugin,附件上之后支持nosql,列存储,crystal db,集群(分片)等。
- 如何实现数据库分布式,分库,分表:
具体参阅文章:
服务端高性能数据库优化演变细节案例:http://blog.oldboyedu.com/high-performance-database/
基于mysql(innodb)优化:http://blog.oldboyedu.com/mysql-optimization/
Mysql 基于 Amoeba 的 水平和垂直 分片:http://pengranxiang.iteye.com/blog/1145342
Amoeba使用指南:http://docs.hexnova.com/amoeba/
PostgreSQL sharding 数据分片 for Oracle, SQL Server, DB2, Sybase :http://blog.163.com/digoal@126/blog/static/163877040201612313414725/
基础才是编程人员应该深入研究的问题,比如:
1)List/Set/Map内部组成原理|区别
2)mysql索引存储结构&如何调优/b-tree特点、计算复杂度及影响复杂度的因素。。。
3)JVM运行组成与原理及调优
4)Java类加载器运行原理
5)Java中GC过程原理|使用的回收算法原理
6)Redis中hash一致性实现及与hash其他区别
7)Java多线程、线程池开发、管理Lock与Synchroined区别
8)Spring IOC/AOP 原理;加载过程的。。。
【+加关注】。