mysql varchar(20)_MySQL中采用类型varchar(20)和varchar(255)对性能上的影响

MySQL建立索引时如果没有限制索引的大小,索引长度会默认采用的该字段的长度,也就是说varchar(20)和varchar(255)对应的索引长度分别为203(utf-8)(+2+1),2553(utf-8)(+2+1),其中"+2"用来存储长度信息,“+1”用来标记是否为空,加载索引信息时用varchar(255)类型会占用更多的内存; (备注:当字段定义为非空的时候,是否为空的标记将不占用字节)例如,测试sql(InnoDB引擎)如下:

CREATE DATABASE TestDataBase

USE TestDataBase

CREATE TABLE ABC (

`id` int(11) DEFAULT NULL,

`name` varchar(20) DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8

ALTER TABLE `ABC` ADD INDEX `nameIndex` (`name`)

explain select name from ABC

alter table ABC modify name varchar(255)

explain select name from ABC

varchr(10)变长字段且允许NULL =》10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL)+2(变长字段)

varchr(10)变长字段且不允许NULL =》10*(Character Set:utf8=3,gbk=2,latin1=1)+2(变长字段)

char(10)固定字段且允许NULL =》10*(Character Set:utf8=3,gbk=2,latin1=1)+1(NULL)

char(10)固定字段且不允许NULL =》10*(Character Set:utf8=3,gbk=2,latin1=1)

根据这个值,就可以判断索引使用情况,特别是在组合索引的时候,判断所有的索引字段都被查询用到。

通常情况下使用varchar(20)和varchar(255)保持'hello'占用的空间都是一样的,但使用长度较短的列却有巨大的优势。较大的列使用更多的内存,因为MySQL通常会分配固定大小的内存块来保存值,这对排序或使用基于内存的临时表尤其不好。同样的事情也会发生在使用文件排序或者基于磁盘的临时表的时候。

varchar(20)与varchar(255)都是保持可变的字符串,当使用ROW_FORMAT=FIXED创建MyISAM表时,会为每行使用固定的长度空间,这样设置不同的varchar长度值时,存储相同数据所占用的空间是不一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

添加mysql至服务器_mysql 如何添加服务器

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服务器 ECS(Elastic Compute Service)是一…

vs里安装了mysql吗_vs2017安装 MySQL for Visual Studio 1.2.

vs2017安装想在win7EF6 VS2017 MySQL 但是安装MySQL for Visual Studio 1.2.7 时一直安装不上去,如下:Action 9:40:05: InstallFinalize.1: Action 9:40:05: DeleteRegKeyAndExtensionsFile_VS2013.1: Action 9:40:06: DeleteRegKeyAndExtensionsFile_…

var lib mysql ib_MYSQL问题解决

1、MySQL错误日志里出现:140331 10:08:18 [ERROR] Error reading master configuration140331 10:08:18 [ERROR] Failed to initialize the master info structure140331 10:08:18 [Note] Event Scheduler: Loaded 0 events从错误提示就可以看出和mster info相关&am…

mysql数据库优化语句_mysql数据库优化语句

mysql优化语句数据库语句: Ddl(数据定义语言) alter create drop Dml(数据操作语言) inset delete update www.2cto.com Dtl(数据事务语言) conmmit rollback savepoint Select Dcl(数据控制语句) grant赋权限 revoke回收 Mysql数据库优化: 1、 数据库表…

linux mysql 目录结构图_linux下mysql安装、目录结构、配置

1、准备安装程序(官方网站下载)服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rpm客户端:MySQL-client-community-5.1.44-1.rhel4.i386.rpm2、安装(打印信息略)[rootlocalhost /]#rpm -ivh MySQL-server-community-5.1.44-1.rhel4.i386.rpm;[rootl…

php mysql删除失败_php mysql删除的代码哪里出错了?

<?phpsession_start ();if($_SESSION[droits]f){echo("vousn\avezpasdedroit");}include(dirname(__FILE__)."/includes/connexion.php");?>-//W3C//DTDHTML4...session_start();if ($_SESSION[droits] f){echo("vous n\avez pas de droit&q…

mysql rr 更新失败_RR 级别下 update 操作的是快照读还是当前读?

我们知道在 RR 级别下&#xff0c;重复的 select 操作&#xff0c;读取的值都会是一致的。即便在两次 select 操作的中间&#xff0c;有一个事务 B 修改了值&#xff0c;但是在事务 A 中 select 读取的值还是一致的。那么如果是 update 操作呢&#xff1f;之前在网上看到一篇博…

json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑

最近在使用Vue仿写一个网易云音乐的单页面应用&#xff0c;当页面布局什么的写完后&#xff0c;然后就准备用axios获取后台数据渲染页面了&#xff0c;当然&#xff0c;我自己写的&#xff0c;并没有后台&#xff0c;所以&#xff0c;我就自己写json文件&#xff0c;然后弄prox…

python中数据类型不同运算不同_Python的基本数据类型与运算

Python的基本数据类型:1.number数字整型(整数):python可以处理任意大小的整数包括正整数与负整数浮点型(小数):在Python中表示浮点数的时候回存在一些误差复数:abj2.str字符串类型定义:使用单引号或者双引号括起来的任意文本,我们称之为字符串.3.bool(布尔)类型取值只有Ture和F…

ubuntu 自动加载ko_linux驱动模块开机自动加载,以及应用程序开机自启动

http://blog.csdn.net/qq_29350001/article/details/51788635第一种方法&#xff1a;相对来说简单将测试程序放在/bin底下&#xff0c;然后用vi编辑/etc/init.d/rcS&#xff0c;加上/bin/应用程序名 &,加上&表示后台运行这两个功能的实现都是通过设置启动脚本来实现的。…

mysql架构深入_mysql性能优化2:深入认识mysql体系架构

前言本文将重点梳理mysql的体系架构&#xff0c;便于了解mysql的实现原理。Mysql体系结构Client Connectors 接入方 支持协议很多Management Serveices & Utilities 系统管理和控制工具&#xff0c;mysqldump、 mysql复制集群、分区管理等Connection Pool 连接池&#xff1…

mysql租车管理系统_基于java实现租车管理系统

概述基于java swing JFrame 的图书馆管理系统&#xff0c;租车&#xff0c;还车&#xff0c;管理员管理用户&#xff0c;付款等。部分代码public class Login extends JFrame {private static final long serialVersionUID 1L;/*** 登录窗体*/public Login() {setDefaultClo…

树莓派 pip安装mysql_树莓派 pip 手动安装

在 /etc/pip.conf 添加如下内容&#xff0c;启用源[global]extra-index-urlhttps://www.piwheels.org/simple下载后 pip install **.whl 安装国内源&#xff1a;新版ubuntu要求使用https源&#xff0c;要注意。清华&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple阿里云…

6阶群的非平凡子群_设群G=Z 16 , 求出其全部非平凡正规子群和相应的商群._学小易找答案...

【计算题】求出三次对称群 的全部正规子群和商群。【单选题】19、如下图所示,已知主、俯视图,正确的俯视图为( )【单选题】7、一平面在W面上的投影是一条平行于OZ轴的直线,在H面上的投影是一条平行于OX轴的直线,该直线是( )。【单选题】1、已知点N(15,22,10),下列说法错误的是(…

fastjson 不转某些字段_全面总结Fastjson过滤字段、排除字段的5种方法(含示例)...

1.通过注解指定不需要序列化的字段在不需要序列化的字段&#xff0c;添加JSONField(serialize false)注解可进行排除。public class DontSerializeAnnotation{JSONField(serialize false)private Long id;private String name;public Long getId(){return id;}public void se…

qpython3h安装numpy_怎么装不上numpy?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼还是不行&#xff1a;(------------------------------------------------------------ /data/data/com.hipipal.qpyplus/files/bin/pip run on Mon Sep 21 11:04:21 2015 Downloading/unpacking numpy Running setup.py egg_info …

java随机整数_java如何产生1-8的整数随机数?

展开全部(int)(Math.random()*8)1或者Random r new Random(100);System.out.println(r.nextInt(8)1);Java产生随机数的两种方式62616964757a686964616fe58685e5aeb9313333656462611、通过Math.random()方法返回一个0到1之间的double值。2、通过Random类来产生一个随机数&#x…

java 1的阶乘之和_1-20的阶乘之和(java)

import java.math.BigInteger;public class Factorial {//2)求1&#xff01;2&#xff01;……20&#xff01;public static void main(String[] args){BigInteger sumBigInteger.ZERO;for(BigInteger iBigInteger.ONE;i.intValue()<20;){ii.add(BigInteger.ONE);sumsum.add…

java 音频解码_java视频音频解码-封装xuggle-实现多种视频编码格式解码扩展

手头做一个视频相关项目&#xff0c;但是客户发来的测试视频(avi格式) 现有组件不能解码。现有视频解码组件方案有基于JMF和opencv Jni调用。远远不能满足目前市面上玲琅满目的各种视频编码标准。进行检索 找到xuggler官方主页&#xff1a;http://www.xuggle.com/xuggler 对5.…

java 二叉树特点_二叉树的Java实现及特点总结

二叉树是一种非常重要的数据结构&#xff0c;它同时具有数组和链表各自的特点&#xff1a;它可以像数组一样快速查找&#xff0c;也可以像链表一样快速添加。但是他也有自己的缺点&#xff1a;删除操作复杂。我们先介绍一些关于二叉树的概念名词。二叉树&#xff1a;是每个结点…