为什么传统行业几乎都用Oracle，而互联网行业几乎都不用Oracle呢?
首先纠正一个认识：其实，现在很多传统的企业，包括一些金融，如银行也在逐渐尝试使用mysql或其它国产数据库，区别是最关键的主数据库/数据仓库可能还不是用mysql。 我个人觉得有几个原因： 首先当然是风险承受能力，金融类如银行对系统稳定性，数据安全性的要求相比高很多，容错空间小很多，不存在如互联网公司这种可以逐步试错，天天迭代升级的可能；出现问题，互联网类型的公司，可能在首页挂个致歉公告就不错了，而金融类很多时候是一堆人会受到严重处分的；所以，传统行业大部分只是遵循传统的“工业”建设模式，务求一开始系统就尽可能完美。（之前某篇讨论为什么传统公司目前很多还用的java6，一堆互联网大牛冷讥热嘲认为人家的模式落后，如果天天迭代早就java11了，也对也不对，是落后，但这些“传统”的企业，关注的是业务稳定性和业务增值，不是jvm的版本。这种保守方式，也更适合这类企业）； 第二是历史原因，传统企业大多数存在数十年，其整个IT架构和模式也存在十年以上，很难完全推倒重来，这样搞，极其伤筋动骨，而且对业务带来的收益也没有明显提升； 而所谓的互联网，基本都是近年，甚至是5年内的模式（如淘宝，根据公开资料，经过几次大的升级改动，目前的模式也是这几年才逐步成型），没有历史包袱，没有旧系统需要保证兼容性和一致性，可以采用比较新的设计思想和架构； 第三，其实和第二点算是同一原因，传统的企业的IT团队，包括其庞大的外围第三方技术支持公司，也无法一下子就完全适应这种完全不同的互联网开发管理模式，相关人员的经验能力并无法马上达到，而是需要一个过渡期；但目前看到很多企业也逐步在应用，相信不久这些技能也很快就会掌握和实用； 第四，钱也是有影响因素，因为一开始，互联网类型的公司，大部分资金都比较紧张，只能采用比较“廉价”的选择（当然到后期，能生存的公司，基本也都有能力采购商用的产品，那为什么还是没用商用呢？）。参考第一点，这些公司对数据安全性要求没那么高，这导致互联网公司可以采用稳定性、功能性差一点的开源产品来提供服务，当然，随着对开源系统的广泛使用，也会逐步修补其中存在的问题，通过直接或间接的方法，提升产品的可靠性等，最终如目前看到的，似乎开源的产品也能提供和商用产品一致甚至更好的服务质量，但这其中也是经历了漫长的过程的。 第五，也是钱的因素，但第四的钱是企业购买license的投入；第五的钱，是企业雇佣技术人员的投入，和传统企业相比，互联网的企业大都舍得高薪聘用技术人员，这样也更容易吸引有能力的高手。实际上，很多开源产品，如mysql，随着应用的深入，都是需要深入到源码级别进行修改调整，这无疑对DBA的技术能力要求比较高，而高薪的技术人员，能处理解决这类问题的可能性也更大。而传统企业，如我之前服务的某国企，大领导觉得IT人员没理由比其它财务，HR的同事薪酬有明显差别，想干干，不想干大把人想进来，所以IT人员的薪酬一直维持在远低于市面价值的位置。 回到问题，感觉很多中低级别的开发人员，就是将oracle当成mysql在用，只是使用其最简单的特性，比如只是存取数据表，所以，切换到mysql并没有遇到太多的问题。但大公司专业点的会应用oracle比较多的高级特性，比如在线热备，闪回，集群，审计，多租户等，令到数据的安全性得到比较可靠的保证，但同时无疑也增大了切换到其它数据库的难度和成本。而互联网公司，探索出另外一条技术路线，在应用层解决大部分问题，包括数据冗余、安全、分库等，这也使得大规模应用mysql 作为数据存储成为可能。