oracle 和 mysql 和 nosql

Posted 学习交流

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 和 mysql 和 nosql相关的知识,希望对你有一定的参考价值。

Oracle传统使用方法:存储使用EMC阵列(容量大,数据安全),IBM服务器,即IOE组合,这三个组合很强大(高可用,高性能),但是也高价格。


占 80% 市场份额的 20% 大型互联网公司用的是 Oracle,提供精确数据云服务端;20% 市场份额 80% 中小型互联网公司依赖于 mysql,物美价廉还开源。mysql现已被oracle收购了。大公司。。。。。。

但大型互联网公司不一定都是使用Oracle,主线业务很可能还是MySQL,或者是基于MySQL二次开发的数据库。比如。。。。。。


    • 这些数据通常需要做结构化查询(嗯,好像是废话),比如join,这时候,关系型数据库就要胜出一筹

    • 这些数据的规模、增长的速度通常是可以预期的

    • 事务性、一致性

  • NoSQL适合存储非结构化数据,如文章、评论

    • 这些数据通常用于模糊处理,如全文搜索、机器学习

    • 这些数据是海量的,而且增长的速度是难以预期的,

    • 根据数据的特点,NoSQL数据库通常具有无限(至少接近)伸缩性

    • 按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差


不管你学的是什么sql,一定要把group by、partition和index的各种用法搞明白,能不能写出一手好sql的分水岭就在这里。DBA的核心知识在于安装配置数据库,数据库管理,数据备份,性能优化和故障处理。


mysql 优化:


第一优化你的sql和索引;


myisam读好,写差,。。。


innodb一般都是行锁,。。。。


若是读为主,可以考虑打开query_cache,以及调整一些参数值:sort_buffer_size,read_buffer_size,read_rnd_buffer_size,join_buffer_size

设计合适的索引,。。。。。



  1. 经常需要计算和排序等消耗CPU的字段,应该尽量选择更为迅速的字段,如用TIMESTAMP(4个字节,最小值1970-01-01 00:00:00)代替Datetime(8个字节,最小值1001-01-01 00:00:00),整型替代浮点型和字符型

  2. 变长字段使用。。。。。


数据库索引


业务不需要的不要建索引,不允许在联合索引(或主键)中存在多余的字段。特别是该字段根本不会在条件语句中出现。


唯一确定一条记录的。。。。。。


Query语句

  1. Insert语句中,根据测试,批量一次插入1000条时效率最高,多于1000条时,要拆分,多次进行同样的插入,应该合并批量进行。注意query语句的长度要小于mysqld的参数 max_allowed_packet

  2. 查询条件中。。。。。。


应用系统的优化

  1. 合理使用cache,。。。。。


第二加缓存,memcached,redis;


第三做主从复制或主主复制,。。。。


第六才是水平切分,。。。。


ps:


db笔试面试题库

https://zhuanlan.zhihu.com/p/26146000

如何将Oracle数据导入MySQL

https://www.zhihu.com/question/20200212

以上是关于oracle 和 mysql 和 nosql的主要内容,如果未能解决你的问题,请参考以下文章

请问下mysql和oracle的区别?

请问下mysql和oracle的区别

MySQL数据库和oracle的区别和选择

oracle 和 mysql 和区别

mysql和oracle连接服务器问题

Oracle和Mysql的区别