MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
0xLittleFi
V2EX  ›  MySQL

想问下 平时工作中, mysql 的字段长度的设定有什么固定规范吗?是喜欢用 varchar(255)还是 varchar(256)

  •  
  •   0xLittleFi · Nov 27, 2022 · 4030 views
    This topic created in 1273 days ago, the information mentioned may be changed or developed.

    我个人是一直用 2 的每次方进行设计 varchar 的长度,其他的比如 bigint:20 int:4

    我也搜了下网上的回答: char, varchar 类型的值,会有一个长度标识位来存值长度。 当定义 varchar 长度小于等于 255 时,长度标识位需要一个字节; 当大于 255 时,长度标识位需要两个字节

    cc: https://stackoverflow.com/questions/2340639/why-historically-do-people-use-255-not-256-for-database-field-magnitudes

    8 replies    2023-02-02 17:03:55 +08:00
    billlee
        1
    billlee  
       Nov 27, 2022
    真要抠这点细节,那要看整个表的一行有多大,凑成页面大小。
    eason1874
        2
    eason1874  
       Nov 27, 2022   ❤️ 8
    看你要不要索引,要索引的话,191 比较常用,你可以看到很多开源项目都是 varchar(191)

    MySQL 以前的 utf8 只支持到三字节,5.7.7 之前版本的 InnoDB varchar 索引长度是 255 * 3 ,要兼容四字节 utf8mb4 的话就是 (255 * 3) / 4 = 191.25 ,取整数就是 191
    Leviathann
        3
    Leviathann  
       Nov 27, 2022
    索引有 767 长度限制
    如果是 3bytes 字符集就是 255
    如果是 4bytes 就是 191
    jaoyina
        4
    jaoyina  
       Nov 27, 2022   ❤️ 1
    字段不要太多,我碰到总字节数不能超过 65535 的问题,导致建表失败。
    0xLittleFi
        5
    0xLittleFi  
    OP
       Nov 27, 2022
    @eason1874 其他的字段呢,比如 int bigint 啥的,也同样有说法?
    eason1874
        6
    eason1874  
       Nov 27, 2022   ❤️ 1
    @0xLittleFi 其他的没听过,可以看这个页面 https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html

    我记错了,我之前不知道在哪儿看到说新版没有 767 限制了,但是文档看起来新版默认还是限制 767
    LeegoYih
        7
    LeegoYih  
       Nov 27, 2022
    比较小的字符串我会用 191 或者 64
    postgres 比较香,直接 text 梭哈了,除非特殊场景

    int bigint 这种可以不写长度,因为 mysql 并不能限制
    fengyedzf
        8
    fengyedzf  
       Feb 2, 2023   ❤️ 2
    这篇文章有解析,但 in english
    https://news.ycombinator.com/item?id=27189998
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2464 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 01:08 · PVG 09:08 · LAX 18:08 · JFK 21:08
    ♥ Do have faith in what you're doing.