数据库表设计

字段长度分析

在utf8的环境下,一个汉字占3字节,一个数字或字母占1字节

  • 字符型

    • char(n) 固定长度 n表示可存的字符个数
    • varchar(n) 可变长度 n表示可存的字符个数
  • char(10)和varchar(10)的区别?

    • 假设存储字符串 abc ,对于char这个数据占10字符(包括7个空字符),对于varchar这个数据就占3字符,10表示的是最大长度
  • 效率

    • 当char和varchar都是20时,大量数据情况下,每条数据占10字符,varchar效率反而大于char;因为char占用的磁盘空间更大

日期类型

  • Date
    • 格式:YYYY-MM-DD,范围:'1000-01-01'到'9999-12-31'
  • Datetime
    • 格式:YYYY-MM-DD HH:MM:SS,范围:'1000-01-01 00:00:00'到'9999-12-31 23:59:59'
  • TimeStamp (时间戳)
    • 格式:YYYYMMDD HHMMSS,范围:1970-01-01 00:00:00/2038
  • YEAR
    • 格式:YYYY,范围:1901/2155

索引

  • 复合索引
    • 复合索引 abc 相当于三个索引 a ab abc 且 b与c都是排好序的
    • 最左匹配原则:范围查找如 >、<、between、like会终止匹配,对于复合索引abc ,a=? and b? and c=? 与 a=? and c=? and b=?效果相同(顺序无影响)
原文地址:https://www.cnblogs.com/qifengle1412/p/12769283.html