› 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 · 4414 views
    This topic created in 1402 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   ·   Privacy   ·   Solana   ·   1233 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 17:09 · PVG 01:09 · LAX 10:09 · JFK 13:09
    ♥ Do have faith in what you're doing.