• 创建mysql数据库时你最好遵循的一些规则
  • 专心滴打铁 发表于 2015/11/28 13:13:00 | 分类标签: 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支持
  • 请您注意

    ·自觉遵守:爱国、守法、自律、真实、文明的原则

    ·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规

    ·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品

    ·承担一切因您的行为而直接或间接导致的民事或刑事法律责任

    ·您在编程中国社区新闻评论发表的作品,本网站有权在网站内保留、转载、引用或者删除

    ·参与本评论即表明您已经阅读并接受上述条款

  • 感谢本文作者
  • 作者头像
  • 昵称:专心滴打铁
  • 加入时间:2013/7/13 0:00:00
  • TA的签名
  • 这家伙很懒,虾米都没写
  • +进入TA的空间
  • 以下内容也很赞哦
分享按钮