开发者社区> 问答> 正文

字段长度超过1000设置成什么样的类型

一个mysql字段最大字符长度1000,不需要用于搜索,记录条数可能过千万,将来可能会水平分表,把它设置为varchar好还是text好?需不需要先垂直分表?

展开
收起
蛮大人123 2016-02-12 14:33:26 4563 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    mysql的记录行长度是有限制的,不是无限长的,这个长度是64K,即65535个字节,对所有的表都是一样的。
    MySQL对于变长类型的字段会有1-2个字节来保存字符长度。
    当字符数小于等于255时,MySQL只用1个字节来记录,因为2的8次方减1只能存到255。
    当字符数多余255时,就得用2个字节来存长度了。
    在utf-8状态下的varchar,最大只能到 (65535 - 2) / 3 = 21844 余 1。
    在gbk状态下的varchar, 最大只能到 (65535 - 2) / 2 = 32766 余 1
    参考:)https://ruby-china.org/topics/24920

    2019-07-17 18:41:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载