test [RW] 10:57:50 >insert into vbinary (val,name) value('2msdmlsdyo2enwlenw','disodmalsdsi');
Query OK, 1 row affected, 1 warning (0.00 sec)
test [RW] 10:57:55 >show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1265 | Data truncated for column 'val' at row 1 |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
test [RW] 10:58:11 >insert into vbinary (val,name) value('有赞是一家移动零售服务提供商','disodmalsdsi');
Query OK, 1 row affected, 1 warning (0.01 sec)
test [RW] 10:59:00 >show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1265 | Data truncated for column 'val' at row 1 |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
test [RW] 10:59:08 >select * from vbinary;
+----+--------------+--------------+
| id | val | name |
+----+--------------+--------------+
| 6 | 2msdmlsdyo2e | disodmalsdsi |
| 7 | 有赞是一 | disodmalsdsi | #
+----+--------------+--------------+
7 rows in set (0.00 sec)
test [RW] 10:59:12 >insert into vachar(val,name) value('有赞是一家移动零售服务提供商','disodmalsdsi');
Query OK, 1 row affected, 1 warning (0.00 sec)
test [RW] 11:00:02 >show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1265 | Data truncated for column 'val' at row 1 |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
test [RW] 11:00:06 >select * from vachar;
+----+--------------------------------------+--------------+
| id | val | name |
+----+--------------------------------------+--------------+
| 4 | ccdd | yz |
| 5 | 有赞是一家移动零售服务提 | disodmalsdsi |
+----+--------------------------------------+--------------+
5 rows in set (0.00 sec)
test [RW] 10:47:01 >alter table vbinary add name varbinary(255) not null default 'yz';
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
test [RW] 10:47:24 >alter table vbinary add key idx_name(name);
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
test [RW] 10:48:25 >rename table vchar to vachar;
Query OK, 0 rows affected (0.01 sec)
test [RW] 10:49:00 >alter table vachar add name varchar(255) not null default 'yz';
Query OK, 0 rows affected (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 0
test [RW] 10:49:31 >alter table vachar add key idx_name(name);
Query OK, 0 rows affected, 1 warning (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 1
test [RW] 10:49:53 >show Warnings;
+---------+------+---------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------+
| Warning | 1071 | Specified key was too long; max key length is 767 bytes |
+---------+------+---------------------------------------------------------+
1 row in set (0.00 sec)
test [RW] 10:50:06 >show create table vachar \G
*************************** 1. row ***************************
Table: vachar
Create Table: CREATE TABLE `vachar` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`val` varchar(12) NOT NULL DEFAULT '',
`name` varchar(255) NOT NULL DEFAULT 'yz',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`(191))
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
test [RW] 10:50:19 >show create table vbinary \G
*************************** 1. row ***************************
Table: vbinary
Create Table: CREATE TABLE `vbinary` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`val` varbinary(12) NOT NULL DEFAULT '',
`name` varbinary(255) NOT NULL DEFAULT 'yz',
PRIMARY KEY (`id`),
KEY `idx_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
test [RW] 11:53:08 >create table vbinary1
-> (
-> id int primary key auto_increment ,
-> val varbinary(776) not null default ''
-> ) engine=innodb default charset=utf8mb4;
Query OK, 0 rows affected (0.01 sec)
test [RW] 11:53:09 >alter table vbinary1 add key idx_val(val);
Query OK, 0 rows affected, 1 warning (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 1
test [RW] 11:53:37 >show Warnings;
+---------+------+---------------------------------------------------------+
| Level | Code | Message |
+---------+------+---------------------------------------------------------+
| Warning | 1071 | Specified key was too long; max key length is 767 bytes |
+---------+------+---------------------------------------------------------+
1 row in set (0.00 sec)
test [RW] 11:53:44 >show create table vbinary1 \G
*************************** 1. row ***************************
Table: vbinary1
Create Table: CREATE TABLE `vbinary1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`val` varbinary(776) NOT NULL DEFAULT '',
PRIMARY KEY (`id`),
KEY `idx_val` (`val`(767)) ## 被修改为 767 ,索引支持的最大字节数。
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
1 row in set (0.00 sec)
到此,相信大家对“MySQL中使用varbinary比varchar更合适吗”有了更深的了解,不妨来实际操作一番吧!这里是天达云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!