zoukankan      html  css  js  c++  java
  • Mysql常见的优化策略

    数据库设计方面优化

    1、数据库设计符合第三范式,为了查询方便可以有一定的数据冗余。
    2、选择数据类型优先级 int > date,time > enum,char>varchar > blob,选择数据类型时,可以考虑替换,如ip地址可以用ip2long()函数转换为unsign int型来进行存储。
    3、对于char(n)类型,在数据完整的情况下尽量较小的的n值。
    4、在建表时用partition命令对单个表分区可以大大提升查询效率,MySQL支持RANGE,LIST,HASH,KEY分区类型,其中以RANGE最为常用,分区方式为:
      CREATE TABLE tablename{
      }ENGINE innodb/myisam CHARSET utf8 //选择数据库引擎和编码
      PARTITION BY RANGE/LIST(column),//按范围和预定义列表进行分区
      PARTITION partname VALUES LESS THAN /IN(n),//命名分区并详细限定分区的范围

    5、选择数据库引擎时要注意innodb 和 myisam的区别。
      存储结构:MyISAM在磁盘上存储成三个文件。而InnoDB所有的表都保存在同一个数据文件中,一般为2GB
      事务支持:MyISAM不提供事务支持。InnoDB提供事务支持事务。
      表锁差异:MyISAM只支持表级锁。InnoDB支持事务和行级锁。
      全文索引:MyISAM支持 FULLTEXT类型的全文索引(不适用中文,所以要用sphinx全文索引引擎)。InnoDB不支持。
      表的具体行数:MyISAM保存有表的总行数,查询count(*)很快。InnoDB没有保存表的总行数,需要重新计算。
      外键:MyISAM不支持。InnoDB支持

  • 相关阅读:
    Python中的分支条件结构
    Python中常用的数据类型转换
    Python中的运算符
    Python中的输入和输出
    信息收集之zoomeye
    信息收集之censys
    linux权限管理
    linux软件安装管理
    Linux网络管理
    磁盘管理与用户管理
  • 原文地址:https://www.cnblogs.com/clubs/p/10306350.html
Copyright © 2011-2022 走看看