<个人的一个小记录, 如有不足的地方, 还望指正>
MySQL使用场景以及优缺点
使用场景
1, 高度事务性的系统;
2, 重要数据, 关系性数据;
3, 需要sql语句的问题;
......
优点
1, 使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性;
2, 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统;
3, 为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等;
4, 支持多线程,充分利用CPU资源;
5, 价格便宜:Mysql是开源的,所以不需要支付额外的费用;
6, MySQL使用标准的SQL数据语言形式
......
缺点
1, 比较难学;
2, MySQL也缺乏一些存储程序的功能;
3, 使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入;
4, 使用myisam配置,如果你不慎损坏数据库,结果可能会导致所有的数据丢失
......
redis使用场景和优缺点
使用场景
1, 取最新N个数据的操作
2, 排行榜应用, 取top N 操作
3, 需要精准设定过期时间的应用
4, 计数器应用
5, uniq 操作,获取某段时间所有数据排重值
6, pub/sub 构建实时消息系统
7, 构建队列系统
8, 缓存
优点
1 读写性能优异
2 支持数据持久化,支持AOF 和 RDB 两种持久化方式
3 支持主从复制,主机会自动将数据同步到从机,可以进行读写分离
4 数据结构丰富 有string,hash,set,sortedset,list
缺点
1 不具备自动容错和恢复功能
2 较难支持在线扩容
mongodb使用场景和优缺点
使用场景
1 网站数据
2 缓存
3 大尺寸,低价值的数据
4 高伸缩性的场景
5 用于对象及json数据的存储
6 一般数据存储
7 把mongodb当作MySQL的一个view,view是将表数据整合成业务数据的关键
优点
1 弱一致性,更能保证用户的访问速度
2 文档结构的存储方式,能够更便捷的获取数据
3 内置GridFS,高效存储二进制大对象
4 支持复制集,主备,互为主备,自动分片等特性
5 动态查询
6 全索引支持,扩展到内部对象和内嵌数组
缺点
1 不支持事务
2 占用空间过大
3 维护工具不够成熟