一般这汇总情况我认为
你的id应该是自增的吧
如果是自增
那么
插入一个数据的话
就是id等于4的那个行
切
你的
desc字段应该就是
用来
排序用的吧
那么
在前台
你可以
做一个input框(每行后边都有个input框)
目的就是为了
排序你的数据
在这种情况下
就不需要改动什么字段了吧
唯一需要改动的字段内容
就是
更新
desc的字段就可以了吧
打个比方
原来是这样的
id
name
desc
1
a
0
2
c
3(改动)
3
b
2(改动)
4
d
1(追加在a后)
修改后
按
name
a
b
c
d
这么排列
id
name
desc
1
a
0
3
b
1
2
c
2
4
d
3
这是在前台显示的内容
在数据库里
你可以看到实际上
改变的
只有
desc
后边的
0
1
2
3
这几个
而数据库的表中
实际数据的位置是不会发生变化
其实你不用担心什么数据量过多的问题
且
在插入新的数据的时候
就让他的desc值默认是最大的
也就是最后一位显示
字符集:罗列所有图形字符的一张大表。排序规则:定义各个图形字符之间的大小比较规则,比如:是否区分大小写,区分全角和半角等。在软件使用中,一般我们只指定字符编码即可,因为确定了字符编码字符集自然就确定了。但是在数据库类软件中,我们除了要指定编码规则,还需要指定排序规则,因为,数据库是要提供模糊匹配、排序显示功能的。sql可以查看mysql支持的字符集编码和排序规则,其中每个字符集编码都有一个默认的排序规则。
由于历史原因,MySQL刚开始设计的时候,"天真的"认为使用3个字节就足够存储字符串了,因此将UTF-8进行阉割然而遇到复杂的汉字或者emoji表情等4字节的宽字符的时候,存储就会出现异常,因此在版本5.7.3开始引入utf8mb4,其表示为most bytes 4,即最多占用4个字节。
utf8mb4_unicode_ci是基于官方的Unicode规则进行排序和压缩,其算法相对负责,对于大部分的语言和字符集排序有着很高的准确率而uft8mb4_general_ci可以理解为一种为了提升速度的简化版Unicode规则,但由于它不完全遵循Unicode规则,在使用某种特定语言或者字符集时,会出现非预期的结果。
例:
总结:
UTF-8编码的字符可以是1-4个字节,但是在MySQL中最大只能存储3个字节。
在版本5.5开始引入innodb_large_prefix,其默认值为off,索引的前缀最大限制为767个字节;若值为on时(版本5.7.7开始作为默认值),最大限制为3072个字节。
总结:
在后期版本 innodb_large_prefix 将会被逐渐废弃并移除。从版本8.0开始,索引长度限制由表字段(row format)决定,若为DYNAMIC或COMPRESSED时,限制值为3072;为REDUNDANT或COMPACT时,限制值为767。且row_format=dynamic时,长度3072是基于innodb_page_size=16KB,随着innodb_page_size的值按比例增减,其索引前缀长度也响应减小,如若为8KB时,长度为1536,因此在限制索引长度时,需根据使用的MySQL版本以及相应的参数进行配置决定。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)