mysql性能优化总结(四)

mysql数据库结构设计和SQL优化

  数据库设计对性能的影响

    1.过分的反范式化设计为表建立太多的列(服务层和存储引擎层之间通过反冲格式来拷贝数据和解析成列,列过多,带来额外的cpu消耗)

    2.过分范式化造成过多的表关联,mysq最多支持61张表的关联查询,需要控制在10个以内

    3.使用不恰当的分区表

    4.使用了外键

 

mysql性能优化顺序

  1.数据库结构设计和sql语句(需要持续关注)

  2.存储引擎的选择和参数配置

  3.系统选择与优化

  4.硬件升级

 

mysql基准测试

  基准测试常见指标

    1.TPS

    2.QPS

    3.响应时间

  mysql基准测试工具

    1.msyqlslap     mysql服务器自带的基准测试工具

      测试语句:

      mysqlslap --concurrency=1,50,100,200 --iterations=3 --number-int-cols=5 --number-char-cols=5 --auto-generate-sql --auto-generate-sql-add-autoincrement --engine=myisam,innodb --number-of-queries=10 --create-schema=sbtest --only-print | more

    2.sysbench

 

 

数据库结构设计优化

      目的:

  

 

     步骤:

    

 

   数据库设计范式:

    

 

     

     

 

         

   

    数据库的反范式化:

    

 

         反范式化是使用空间来换取时间

 

 

范式化和反范式化的优缺点比较

    范式化:

  

 

 

 

 

 反范式化:

    

 

 

 

 

 

 

 

 

 数据库的物理设计:

  

 

 

 

 

 

 

 

 

 

 

 

 

 varchar最大长度为65535个字符

 

 

 在内存中使用的是定长的数据结构,所以varchar(5)和varchar(255)并不一样

 

 

 

 

 

 char类型避免产生存储碎片

 

 

 

 

 

 

 

 

datetime也可以做到自动更新

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

 

posted @ 2020-07-10 17:31  红嘴鲤鱼  阅读(224)  评论(0编辑  收藏  举报