Nosql数据库使用场景sql
首先须要确认一个问题,nosql能作什么?在如今的开发领域中nosql能够实现文档存储(BSON、JSON)、缓存存储、图像缓存(图像搜索),可是对于nosql的具体应用场景彻底要根据你实际的业务来说;数据库
· 在传统的开发之中因为常常要使用到多表查询,性能不好,因此能够将一些常常显示的数据整理到文档型的nosql数据库(MongoDB),可是如今这个文档型的nosql使用愈来愈少,能够忽略了;缓存
·缓存型:例如在进行分布开发的时候session存储、作一些临时的数据,例如:购物车、短信验证码等,如今使用最多的缓存数据库就是Redis(能够保存在磁盘,断电后数据能够被保存下来);session
使用Redis实现消息队列,可使用更加高级的RabbitMQ,Kafka实现更方便。less
优势:能够实现每秒近乎10W次的读写处理。nosql
数据库优化有不少层次。性能
1. 语句上的优化:尽可能不要去使用多表查询,尽可能不要频繁的使用各类神奇的统计查询、若是须要的时候建议使用子查询来代替(子查询只是一种折中方案也不是最好的,只是相对的,当你的数据量暴大的时候,那么你全部认知的规则就所有都将改变)。优化
2. 数据库的优化只可以体如今查询上,而这个查询仍是在认知范围内的数据量,例如使用索引,可是一旦使用了索引,就不可以进行频繁的修改,例如:在主键每每会设置索引,可是从另一个角度,数据不该该进行物理删除,而要进行逻辑删除,只是为了保证索引不被从新建立;搜索引擎
空间换时间、时间换空间:你的数据是否须要进行同步处理操做。阿里云
3. 当存在有多个RPC业务端的时候,能够考虑进行垂直拆库的作法,这个时候只可以按照功能进行拆分,这个是须要强大的接口技术支持的;
4. 当分库在没法解决问题的时候就须要考虑数据库的水平拆分问题(认知范围内的惟一可使用的最后方案);
5. 若是须要保证强大的查询性能,那么就须要再次引入搜索引擎的概念进行分词处理;
更多数据库精品课程:阿里云大学——开发者课堂