zoukankan      html  css  js  c++  java
  • 数据库准入规则

    建表要点

    为什么推荐使用表使用INNODB,而不是MYISAM或其它?

    InnoDB在并发读写性况下好于MyISAM、支持事务、表不易损坏。

    InnoDB中为什么推荐主键使用自增

    递增与InnoDB本身数据的存储原理相契合,有利于数据的顺序存储及读取,更好的避免插入过程中的数据分页.

    为什么不让使用存储过程、触发器、外键、视图、事件等

    原因在于与业务耦合太大,或是某些场景下可能造成主从不一致,或是不利于线上追查问题,或是不利于统一运维等

    字段及表必须要有COMMENT

    主要出于这样做更有利于对共同开发或接手开发的其它同学。建立表及字段的COMMENT是一个天然的功能说明书。

    字段设置为非NULL

    更有利于语句查询,规避一些容易出现的问题,InnoDB本身对NULL的处理有别于其它正常数据或空数据

    字段禁用ENUM,SET

    原因在于不利于扩展,扩展变更表会导致表阻塞写

    VARCHAR长度的选择

    以UTF8不超过2600字符,GBK不超过4000字符为最佳,在业务中推荐不超过7000字符长度,这与varchar在数据页上的存储相关。

    不推荐使用BLOB,TEXT等大字段

    主要原因在于大字段带来更多的IO,网络开销。同时会给中间层带有影响。RD可与PM沟通是否真有必要,然后与DBA进行确认。

    SQL使用要点

    禁止使用SELECT *取所有字段

    带来更多的网络及可能更多的IO消耗,在共同开发中更为明显。如果其它同学放入一个很大的字段,此种SQL将无意中导致带宽问题。

    INSERT需要指明需要插入的字段名

    表字段变更将直接导致原有正常运行的语句变成错误语句。也易出现因拼写不严禁导致的数据插错字段。

    数字与字符之间不做等值查询

    如字段是INT类型,结果查询使用ID=’1’这种情况。导致无法利用到索引。

    INSERT ON DUPLICATE KEY的使用注意事项

    允许使用,但要知道这类语句如何绕过BUG场景

    • 在5.0及以下版本中请保证此类语句的串行执行
    • 其依赖于表中唯一索引,确保唯一索引不变更。

    JOIN表不推荐超过2个

    并不是说JOIN3个或以上就一定会出问题,主要原因在于JOIN表越多,性能消耗越大,系统并发能力越低。

  • 相关阅读:
    [转载]Oracle Golden Gate
    git操作命令
    logger.error完整打印错误堆栈信息
    短网址算法
    YYYY-mm-dd HH:MM:SS大小写解释
    quarz时间配置
    Freemarket语法
    Java NIO:IO与NIO的区别
    idea常用到的命令
    linux 常用命令
  • 原文地址:https://www.cnblogs.com/sweetsunnyflower/p/11381541.html
Copyright © 2011-2022 走看看