MySQL的优缺点

优点:

  1. 体积小、速度快、总体拥有成本低,开源,提供的接口支持多种语言连接操作
  2. MySQL 的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。用多线程和C语言实现的MySQL ,充分利用CPU资源
  3. 有一个非常灵活而且安全的权限和口令系统。当客户与MySQL 服务器连接时,他们之间所有的口令传送被加密,而且MySQL 支持主机认证
  4. 支持大型的数据库, 可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改
  5. 支持多种操作系统,如Linux、Windows、AIX、FreeBSD、HP-UX、MacOS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris等

  6. 提供多语言支持,常见的编码如GB2312、BIG5、UTF8

缺点:

  1. 不支持备份
  2. 不支持自定义数据类型
  3. 存储过程和触发器支持不够友好
  4. MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变

Redis的优缺点

优点:

  1. 支持多种数据类型 例如set、zset、list、hash、string这五种数据类型,操作方便
  2. 性能很好,基于纯内存操作,所以读写性能很好,可以达到10w/s的频率

  3. 支持数据持久化,便于数据备份、恢复,支持简单的事务,操作满足原子性

  4. 支持主从复制,实现读写分离,分担读的压力

  5. 可以设置过期时间,过期自动删除,也可以做持久化

缺点:

  1. 数据存储在内存,主机断电数据就会丢失

  2. 存储容量受到物理内存的限制,只能用于小数据量的高性能操作

  3. 用于缓存时,容易出现’缓存雪崩‘,’缓存击穿‘、‘缓存穿透’等问题

  4. 修改配置文件,进行重启,将硬盘中的数据加载进内存,时间比较久。在这个过程中,redis不能提供服务

两者区别

  • 类型上:MySQL是关系型数据库,Redis是非关系型(缓存)数据库
  • 需求上:MySQL和Redis因为需求的不同,一般都是配合使用
  • 作用上:MySQL用于持久化的存储数据到硬盘,功能强大,但是速度较慢

    Redis用于存储使用较为频繁的数据到缓存中,读取速度快

  • 数据存放位置 :MySQL数据放在磁盘,Redis数据放在内存

  • 应用场景:MySQL和Redis都需要根据具体业务场景去选型

  • 数据类型:MySQL:字符串、列表、集合
    Redis:String、Hash、List、Set、Zset

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐