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
设计合适的索引,。。。。。
经常需要计算和排序等消耗CPU的字段,应该尽量选择更为迅速的字段,如用TIMESTAMP(4个字节,最小值1970-01-01 00:00:00)代替Datetime(8个字节,最小值1001-01-01 00:00:00),整型替代浮点型和字符型
变长字段使用。。。。。
数据库索引
业务不需要的不要建索引,不允许在联合索引(或主键)中存在多余的字段。特别是该字段根本不会在条件语句中出现。
唯一确定一条记录的。。。。。。
Query语句
Insert语句中,根据测试,批量一次插入1000条时效率最高,多于1000条时,要拆分,多次进行同样的插入,应该合并批量进行。注意query语句的长度要小于mysqld的参数 max_allowed_packet
查询条件中。。。。。。
应用系统的优化
合理使用cache,。。。。。
第二加缓存,memcached,redis;
第三做主从复制或主主复制,。。。。
第六才是水平切分,。。。。
ps:
db笔试面试题库
https://zhuanlan.zhihu.com/p/26146000
如何将Oracle数据导入MySQL
https://www.zhihu.com/question/20200212
以上是关于oracle 和 mysql 和 nosql的主要内容,如果未能解决你的问题,请参考以下文章