影响性能的几个方面

  • 服务器
    • 硬件
    • 系统
  • 数据库
    • 数据库存储引擎的选择(插件式存储引擎)
    • 数据库参数配置(影响远远大于前面几个影响)
    • 数据库结构设计和SQL语句
      等级| 特点 | 是否冗余 | 盘数 | 读 | 写
  • –|—|—|—|—|—|
    RAID0 | 便宜,快速,危险 | 否 | N | 快 | 快|
    RAID1 | 高速读,简单,安全| 有 | 2 | 快 | 慢|
    RAID5 | 安全,成本折中| 有 | N+1 | 快 |取决于最慢的盘|
    RAID10| 贵,高速,安全| 有 | 2N | 快 | 快|

服务器

  • 服务器硬件
    • CPU密集型-不支持多CPU对同一SQL并发处理
    • 并发量
    • 内存
    • RAID增加传统集齐硬盘的性能
- 总结
-  CPU
    - 64位的CPU一定要工作在64位的系统下
    - 对于并发比较高的场景CPU的数量比频率重要
    - 对于CPU密集性场景和复杂SQL则频率越高越好
- 内存
    - 选择主板所能适用的最高频率的内存
    - 内存的大小对性能很重要,所以尽可能的大
- I/O子系统
    - PCIe -> SSD -> Raid10 -> 磁盘 -> SAN
  • 服务器系统

    • MySQL适合的操作系统
      • Windows
      • FreeBSD
      • Solaris
      • Linux
      • CentOS
    • 文件系统对性能的影响
      • Windows
        • FAT
        • NTFS
      • Linux
        • EXT3
        • EXT4
        • XFS

    ##数据库

    • 插件式存储引擎

      • Mysiam
      • Innodb
    • 影响性能原因

      • 过分的反范式的设计表

      • 过分的范式化造成太多表关联(最多10)

      • 在OLTP环境下使用不恰当的分区表

      • 使用外键保证数据的完整性

        性能优化顺序

  • 数据库结构设计和SQL语句
  • 数据库存储引擎的选择和参数配置
  • 系统选择及优化
  • 硬件升级