您的位置 首页 > 数码极客

【delete什么意思】每日两题:Drop、Truncate、Delete的区别

每天做的问题,你投稿的话,我会回答的!

1、Drop、Truncate和Delete之间的差异

1、删除Drop:数据内容和定义,释放空间。

2、Truncate:删除数据内容,释放空间但不删除定义,从1开始重置索引ID,不触发Delete触发器,不能执行Rollback,不能执行条件删除。

  3、 Delete: 删除数据内容、不释放空间、不删除定义、可以携带条件,可以进行Rollback,效率低于Truncate,因为它相当于一行行的删除。


2、为什么varchar默认长度是255

  1、 mysql要求varchar一个行的定义长度不能超过65535bytes,这个大小包括了字段占用的空间在内,text和blob等大字段除外(注: 单行最大限制指的就是一张表中所有字段的所设置的长度总和不得超过65535字节)


  2、 InnoDB存储引擎的表索引的前缀长度最长是: 767字节,如果需要创建索引,不能超过这个长度。而utf-8编码时: 255 * 3(一个字符占3个字节) = 765字节,恰恰是能够建立索引的最大值。单列索引的长度的限制里面默认不能超过767bytes,5.7不超过3072bytes)


  3、总结: varchar(255)不是最优的字符长度,最优的需要按照具体情况来,但是这个长度可以保证你能少出错的一个不错的默认值


  想了解更多或者投稿,欢迎关注和私信回复【每日一题】或【面试资料】。


关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐