位置: 编程技术 - 正文

深入研究mysql中的varchar和limit(容易被忽略的知识)(深入mysql源码)

编辑:rootadmin

推荐整理分享深入研究mysql中的varchar和limit(容易被忽略的知识)(深入mysql源码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql深入浅出第三版pdf,深入mysql源码,mysql深入浅出第三版pdf,mysql深入理解,mysql深入浅出第三版pdf,mysql深入理解,mysql深入理解,mysql深入理解,内容如对您有帮助,希望把文章链接给更多的朋友!

为什么标题要起这个名字呢?commen sence指的是那些大家都应该知道的事情,但往往大家又会会略这些东西,或者对这些东西一知半解,今天我总结下自己在mysql中遇到的一些commen sense类型的问题。

  1、varchar(5)可以存储多少个汉字,多少个字母数字?

  相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar()去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。

  这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0是个分界限,5.0之前是前面说的那样,5.0之后是可以存储5个“字”,不区分是数字、英文、汉字,果真是这样吗,我们来做个实验:

  可以看出varchar(5)中的5代表的是5个“字”,而不是5个字节(bytes),当我们存储长度超过制定长度的时候会将超过的部分“咔嚓”掉,我的mysql版本是5.6,字符集(charset)utf8和gbk是一样的。

其他版本我电脑上没有,去官方文档看看有没有什么说明,在官方文档中查了半天终于发现了点区别:

下面这段来自 显而易见了,官方文档说了,mysql版本小于4.1的时候存储的时候符合说法:varchar(5)保存5个bytes,及5个英文数字或者2.5个汉字(假设一个汉字2个字节);

深入研究mysql中的varchar和limit(容易被忽略的知识)(深入mysql源码)

mysql版本大于等于4.1的时候varchar(5)中的5不再是字节数了,应该理解为“字”这里的字的意思是一个汉字和一个英文或者数字“相同对待”

  2、mysql中的limit,你真的会用吗?

  你在项目中怎么使用limit?limit num&#;还是limit num1,num2?还是其他的?要知道limit使用不同的形式性能差距很大的。

  我自己测试了下,在一张innodb表中去使用limit,表中条数据,四个字段,id(int)、time(int)、title(varchar)、body(mediumtext),大小大约M左右,首先关掉查询缓存,免得查询缓存对查询时间有影响,这里要注意time字段上面加了索引,

  打开Query profiler来查看语句执行所花费的时间  接下来对下面几个语句进行执行

执行顺序a,b,c,a,b,c,c,a,a(这里需要注意下,虽然我关闭了缓存,但是上一次的查询还是会缓存,这个可以从Query profiler中看出来,所以进行交叉执行),使用下面的语句查看结果

从上面的语句执行时间分析可以看出,不考虑缓存因素,当使用limit的时候,"limit begin,num"这种形式比"limit num"这种形式效率低很多,因此,在使用的时候尽可能的使用第二种形式,比如说要循环获取一个表里面的数据,一次取出来内从放不下,这个时候就要按照id(或者其他排序字段)进行limit了,我们就可以通过获取上次的该字段临界值作为下次取数据的最小值,使用limit num这种形式效率会高很多。

Mysql 原生语句中save or update 的写法汇总 背景在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。如果使用Hibernate,它自带saverOrU

Mysql大小写敏感的问题 一、1CREATETABLENAME(nameVARCHAR());对这个表,缺省情况下,下面两个查询的结果是一样的:SELECT*FROMTABLENAMEWHEREname='clip';SELECT*FROMTABLENAMEWHEREname='Clip';MySql默认

给Mysql添加远程访问权限的方法 user:myuserpwd:mypassword从任何主机连接到mysql服务器GRANTALLPRIVILEGESON*.*TO'myuser'@'%'IDENTIFIEDBY'mypassword'WITHGRANTOPTION;user:myuserpwd:mypassword从..1.3连接到mysql服务

标签: 深入mysql源码

本文链接地址:https://www.jiuchutong.com/biancheng/321351.html 转载请保留说明!

上一篇:mysql sharding(碎片)介绍(mysql分片sql)

下一篇:Mysql 原生语句中save or update 的写法汇总(mysql怎么实现原子性)

  • 坏账准备要写到明细账里面吗
  • 本期收入和本期免税收入有什么区别
  • 税法规定固定资产最低价格
  • 公对公转账在手机上怎么操作
  • 政府补助是属于什么财务活动
  • 小规模纳税人应交增值税明细科目
  • 金税四期主要监管什么
  • 背书行为有效的是指什么
  • 补缴税款的会计怎么做账
  • 哪些行业不能开具增值税专用发票
  • 主营业务收入增长率计算公式
  • 收回个人社会保险费是否可以冲红管理费用
  • 审计报告印花标
  • 农业种植需要缴税吗
  • 凭发票还是结算票据
  • 国债利息收入免征增值税
  • 库存商品进价成本
  • 超范围经营如何举报
  • 房企视同买断销售的所得税处理
  • 一般纳税人辅导期
  • 企业清算未分配利润不分配要交个税吗
  • 半成品原材料报废会计处理怎么做?
  • 普通发票需要做分录吗?
  • 建筑业2019年最新税率表
  • 建筑业小规模纳税人税率是3%还是5%
  • 加工产品不一定有合理损耗
  • 怎么分辨是否清真食品
  • 收到留抵税额退税怎么做分录
  • 办公室装修费用计入什么会计科目
  • 营改增建筑业
  • windows11如何删除账户
  • win10 多屏协同
  • 部分苹果iOS17功能延后推出
  • 交接目录excel
  • 电脑开机按f8出现please select
  • 迷迭香怎么养殖方法
  • 出售固定资产申报表收入与损益表收入不一致
  • 酒店预收款管理制度
  • 一般合同怎么写才有效
  • 赠送的商品怎么入库 企业会计准则
  • vite搭建vue3
  • c++图像二值化
  • 10年未被强制修复!黑客利用Windows旧漏洞攻击通信公司并分发恶意文件
  • 在vue3项目中使用vue2
  • 管理费用包括哪些部门的工资
  • 中小型科技企业所面临的普遍问题是资金缺乏
  • 费用科目在贷方表示
  • 进项税额加计扣除5%账务处理
  • mysql有几种
  • 原材料结转成本有几种方法
  • 银行存款日记账电子表格模板
  • 建筑公司购买材料直接入工程施工了可以吗?
  • 小规模纳税人个体户经营所得税怎么算
  • 小规模纳税人征税起点
  • 豆制品属于农副产品吗为什么
  • 1元换购的商品是正品吗
  • 个人所得税手续费返还政策文件
  • 从基本存款账户划款3万元 向开户银行转帐
  • 公司给员工结婚红包
  • 固定资产折旧方法一经确定不得随意变更
  • 营业外支出增加说明了什么
  • 水利建设基金缴纳增值税开始缴纳
  • 在mysql中使用视图的限制不包括
  • server2003定时任务
  • 华硕笔记本电脑官网
  • mac清理所有数据
  • liunx系统常用命令
  • 简介linux系统中的10个常用命令及功能
  • imecmnt.exe
  • win8.1中文版下载
  • windows8触屏功能
  • windows7访问windows10
  • 在linux系统中,用来存在系统所需
  • js时间范围
  • 安卓笔记软件squid使用教程
  • js字符串去掉最后两位
  • js校验密码复杂度
  • jquery跨域请求有哪些方式
  • 深圳小微企业税收优惠政策2023
  • 国税系统重点领导名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设