zoukankan      html  css  js  c++  java
  • mysql字段varchar长度分配对性能的影响

    varchar是存储可变长度的字符串,简单的说我们定义表机构的时候指定的字段长度是最大长度,当字符串没有达到最大长度的时候以字符串的实际长度来存储的,不占用多余的存储空间。
    一般情况下使用varchar(10)和varchar(100)保存'fuk'占用的空间都是一样的,但是更小的varchar(10)有着更好的性能。
    比如:MySQL建立索引时如果没有限制索引的大小,索引长度会默认采用的该字段的长度,也就是说varchar(100)建立的索引存储大小要比varchar(10)建立索引存储大小大的多,加载索引使用的内存也更多。 比如:Values in VARCHAR columns are variable-length strings. The length can be specified as a value from 0 to 65,535. The effective maximum length of a VARCHAR is subject to the maximum row size ( 65,535 bytes, which is shared among all columns) 就说所,所有的列长度加起来不能操作65,535 bytes大小,如果你的varchar长度设置大了,那么给其他列使用的长度大小就小了。关于这个更多介绍,请看column-count-limit 实际中根据使用场景选择合适的长度就ok了。

    较大的列使用更多的内存,因为MySQL通常会分配固定大小的内存块来保存值,这对排序或使用基于内存的临时表尤其不好。同样的事情也会发生在使用文件排序或者基于磁盘的临时表的时候。所以在设计数据库的时候,考虑字段的最大容量也是提升性能的一个点。

  • 相关阅读:
    Database
    模式匹配
    About Unicode
    Dive into python学习笔记
    Python基本概念及零碎知识点
    Djnago的一些零碎知识点
    python项目练习3:万能的XML
    Django的第一个web程序及深入学习
    Poj1195&tyvj1474二维线段树
    zoj2319Beautiful People Dp
  • 原文地址:https://www.cnblogs.com/Mang0/p/14138974.html
Copyright © 2011-2022 走看看