首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

1170 -键规范中使用的BLOB/TEXT列'XXX‘没有键长度

在关系型数据库中,BLOB(Binary Large Object)和TEXT是用于存储大型二进制数据和文本数据的列类型。在键规范中使用BLOB/TEXT列时,需要指定键长度。

键长度是指在创建索引时,对于BLOB/TEXT列的前缀长度进行限制。由于BLOB/TEXT列可以存储非常大的数据,如果不指定键长度,将会导致索引占用过多的存储空间,影响查询性能。

指定键长度可以有效地控制索引的大小,提高查询效率。通常,键长度的选择应该根据实际的数据情况和查询需求来确定。

对于这个问题,可以给出以下完善且全面的答案:

BLOB/TEXT列是用于存储大型二进制数据和文本数据的列类型。在键规范中使用BLOB/TEXT列时,需要指定键长度。键长度是指在创建索引时,对于BLOB/TEXT列的前缀长度进行限制。指定键长度可以有效地控制索引的大小,提高查询效率。

BLOB/TEXT列的优势在于可以存储大量的数据,适用于需要存储图片、音频、视频等大型二进制数据,以及长文本数据的场景。例如,在社交媒体应用中,用户上传的图片和视频可以存储在BLOB列中,用户发表的长文本内容可以存储在TEXT列中。

腾讯云提供了多个与BLOB/TEXT列相关的产品和服务。其中,对象存储(COS)是一种高可靠、低成本的云存储服务,适用于存储和管理大规模的非结构化数据,包括BLOB/TEXT列中的数据。您可以通过腾讯云对象存储(COS)来存储和访问BLOB/TEXT列中的数据。详情请参考腾讯云对象存储(COS)产品介绍:https://cloud.tencent.com/product/cos

总结:BLOB/TEXT列是用于存储大型二进制数据和文本数据的列类型,在键规范中使用时需要指定键长度。腾讯云的对象存储(COS)是一种适用于存储和管理BLOB/TEXT列数据的云存储服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

数据库字段及索引设计规范

过大长度会消耗更多内存。 2. 避免使用 TEXT,BLOB 数据类型,最常见 TEXT 类型可以存储 64k 数据 a....建议把 BLOB 或是 TEXT 分离到单独扩展表 MySQL 内存临时表不支持 TEXTBLOB 这样大数据类型,如果查询包含这样数据,在排序等操作时,就不能使用内存临时表,必须使用磁盘临时表进行...如果一定要使用,建议把 BLOB 或是 TEXT 分离到单独扩展表,查询时一定不要使用 select * 而只需要取出必要,不需要 TEXT 数据时不要对该进行查询。 b....TEXTBLOB 类型只能使用前缀索引 因为 MySQL[1] 对索引字段长度是有限制,所以 TEXT 类型只能使用前缀索引,并且 TEXT 列上是不能有默认值 3....禁止给表每一都建立单独索引 5.6 版本之前,一个 sql 只能使用到一个表一个索引,5.6 以后,虽然有了合并索引优化方式,但是还是远远没有使用一个联合索引查询方式好。 3.

1.1K20

MySQL blobtext 数据类型详解

不过数据库并不适合直接存储图片,如果有大量存储图片需求,请使用对象存储或文件存储,数据库可以存储图片路径来调用。...对比 varchar ,text 类型有以下特点: text 类型无须指定长度。 若数据库未启用严格 sqlmode ,当插入值超过 text 最大长度时,则该值会被截断插入并生成警告。...table tb_text add index idx_a (a); ERROR 1170 (42000): BLOB/TEXT column 'a' used in key specification...without a key length mysql> alter table tb_text add index idx_b (b); ERROR 1170 (42000): BLOB/TEXT...总结: 本篇文章介绍了 blobtext 字段类型相关知识。虽然数据库规范中一般不推荐使用 blobtext 类型,但由于一些历史遗留问题或是某些场景下,还是会用到这两类数据类型

7.1K30
  • MySQL开发规范

    、索引设计规范 索引是一把双刃剑,它可以提高查询效率但也会降低插入和更新速度并占用磁盘空间 单张表索引数量不超过5个 单个索引字段数不超过5个 对字符串使用前缀索引,前缀索引长度不超过...默认使用非空唯一 主键建议选择自增或发号器重要SQL必须被索引: SELECT、UPDATE、DELETE语句WHERE条件ORDER BY、GROUP BY、DISTINCT字段多表...,并降低写操作性能 不在低基数列上建立索引,例如‘性别’ 不在索引进行数学运算和函数运算 尽量不要使用用来保护参照完整性,可在业务端实现, 对父表和子表操作会相互影响...,降低可用性INNODB本身对Online DDL限制 不使用%前导查询,如like“%xxx”,无法使用索引 不使用反向查询,如not in / not like 无法使用索引,导致全表扫描...,全表扫描导致bufferpool利用降低 五、字段设计规范 尽可能不要使用TEXTBLOB类型 删除这种值会在数据表留下很大"空洞",可以考虑把BLOBTEXT分离到单独

    82910

    必要商城MySQL开发规范

    、索引设计规范 索引是一把双刃剑,它可以提高查询效率但也会降低插入和更新速度并占用磁盘空间 单张表索引数量不超过5个 单个索引字段数不超过5个 对字符串使用前缀索引,前缀索引长度不超过...默认使用非空唯一 主键建议选择自增或发号器重要SQL必须被索引: SELECT、UPDATE、DELETE语句WHERE条件ORDER BY、GROUP BY、DISTINCT字段多表...,并降低写操作性能 不在低基数列上建立索引,例如‘性别’ 不在索引进行数学运算和函数运算 尽量不要使用用来保护参照完整性,可在业务端实现, 对父表和子表操作会相互影响...,降低可用性INNODB本身对Online DDL限制 不使用%前导查询,如like“%xxx”,无法使用索引 不使用反向查询,如not in / not like 无法使用索引,导致全表扫描...,全表扫描导致bufferpool利用降低 五、字段设计规范 尽可能不要使用TEXTBLOB类型 删除这种值会在数据表留下很大"空洞",可以考虑把BLOBTEXT分离到单独

    67710

    58同城30条数据库三十条军规

    (13)禁止使用,如果有外完整性约束,需要应用程序控制 解读:外会导致表与表之间耦合,update与delete操作都会涉及相关联表,十分影响sql 性能,甚至会造成死锁。...,无论是表还是索引每行null都需要额外空间来标识 d)对null 处理时候,只能采用is null或is not null,而不能采用=、in、、!...=’shenjian’,如果存在name为null值记录,查询结果就不会包含name为null值记录 (15)禁止使用TEXTBLOB类型 解读:会浪费更多磁盘和内存空间,非必要大量大字段查询会淘汰掉热数据...,必须把区分度高字段放在前面 解读:能够更加有效过滤数据 六、SQL使用规范 (23)禁止使用SELECT *,只获取必要字段,需要显示说明属性 解读: a)读取不需要会增加CPU、IO...、NET消耗 b)不能有效利用覆盖索引 (24)禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入属性 解读:容易在增加或者删除字段后出现程序BUG (25

    45410

    手把手教 | 如何设计高性能数据库表

    大批量,意味着多条 SQL 一次性执行完成,必须确保进行充分测试,并且在业务低峰时段或者非业务时段执行。 大字段,blobtext 等大字段,尽量少用。...为了存储计算分离,这类功能尽量在程序实现。这些功能非常不完整,调试、排错、监控都非常困难,相关数据字典也不完善,存在潜在风险。一般在生产数据库,禁止使用。 lob、text、enum、set。...不建议使用 TEXT/BLOB: 处理性能差; 行长度变长; 全表扫描代价大。 解决方案:拆分成单独表。 存储字节越小,占用空间越小。尽量选择合适整型,如下图所示。 ?...如果值不超过 255 个字节,则使用一个字节长度;如果值可能需要超过 255 个字节,则使用两个字节长度。 ? 为什么超过 255 个字节时,必须使用两个字节长度。...这样设计似乎是可行没有创建额外表和,仅仅改变了一个字段数据类型。然而,我们来看看这样设计所必须承受性能和数据完整性问题。所有外都合并在一个单元格内,查询会变成异常困难。

    2.9K22

    58到家MySQL军规来看看吧,或许对你也有帮助哦

    ,较短数据类型可以有效减少索引磁盘空间,提高索引缓存效率 c) 无主键表删除,在row模式主从架构,会导致备库夯住 禁止使用,如果有外完整性约束,需要应用程序控制 解读:外会导致表与表之间耦合...,无论是表还是索引每行null都需要额外空间来标识 d)对null 处理时候,只能采用is null或is not null,而不能采用=、in、、!...=’shenjian’,如果存在name为null值记录,查询结果就不会包含name为null值记录 禁止使用TEXTBLOB类型 解读:会浪费更多磁盘和内存空间,非必要大量大字段查询会淘汰掉热数据...:能够更加有效过滤数据 六、SQL使用规范 禁止使用SELECT *,只获取必要字段,需要显示说明属性 解读: a)读取不需要会增加CPU、IO、NET消耗 b)不能有效利用覆盖索引...c)使用SELECT *容易在增加或者删除字段后出现程序BUG 禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入属性 解读:容易在增加或者删除字段后出现程序BUG

    77510

    大佬整理mysql规范,分享给大家

    各表之间相同意义字段,以去掉模块前缀表名_字段名命名。 外字段用表名_字段名表示其关联关系。 表主键一般都约定成为id,自增类型,是别的表使用xxx_id方式来表明。...尽可能不使用TEXTBLOB类型 禁止在数据库中使用VARBINARY、BLOB存储图片、文件等。建议使用其他方式存储(TFS/SFS),MySQL只保存指针信息。...VARCHAR值为可变长字符串。长度可以指定为0到65,535之间值。(VARCHAR最大有效长度由最大行大小和使用字符集确定。整体最大长度是65,532字节)。...不要索引blob/text等字段,不要索引大型字段,这样做会让索引占用太多存储空间 什么是前缀索引?...存储引擎索引长度总和不能超过 1000 字节 BLOBTEXT 类型只能创建前缀索引 MYSQL 目前不支持函数索引 使用不等于 (!

    1.1K20

    Mysql 30条军规

    二、命名规范 (6)只允许使用内网域名,而不是ip连接数据库 (7)线上环境、开发环境、测试环境数据库内网域名遵循命名规范 业务名称:xxx 线上环境:dj.xxx.db 开发环境:dj.xxx.rdb...c)null值需要更多存储空,无论是表还是索引每行null都需要额外空间来标识。...(15)禁止使用TEXTBLOB类型 解读:会浪费更多磁盘和内存空间,非必要大量大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能。...六、SQL使用规范 (23)禁止使用SELECT *,只获取必要字段,需要显示说明属性 解读: a)读取不需要会增加CPU、IO、NET消耗。 b)不能有效利用覆盖索引。...(24)禁止使用INSERT INTO t_xxx VALUES(xxx),必须显示指定插入属性 解读:容易在增加或者删除字段后出现程序BUG。

    33240

    MySQL数据类型_请列举MySQL中常见数据类型

    大家好,又见面了,我是你们朋友全栈君。   我在网上也搜过很多,就是想知道在数据库建表语句字段类型对应Java实体类属性类型是什么。   ...结果网上一套一套说法不一,完全不一致,有没有一致点,不会错!看我,你就有。   ...String – year Date java.util.Date enum String –   有些类型插件没有自动转换过来,我就不列举,这里就列举常用并且插件能转换过来,这肯定是对没错。...3.手机号使用varchar(20),不要使用整数。 4.对于精确浮点型数据存储,需要使用decimal,严禁使用float、double。 5.如无特殊需要,禁止开发人员使用blob。...11.按照规范,每个定义时候必须加上comments,我上面举例子偷懒了所以没写。 12.数据库字符集只能选择utf8mb4,如果需要导出,也需要显式选择utf8mb4作为导出格式。

    1.9K30

    MySQL规范

    过大长度会消耗更多内存 2、避免使用TEXTBLOB数据类型,最常见TEXT类型可以存储64k数据 建议把BLOB或是TEXT分离到单独扩展表 Mysql内存临时表不支持TEXTBLOB...如果一定要使用,建议把BLOB或是TEXT分离到单独扩展表,查询时一定不要使用select * 而只需要取出必要,不需要TEXT数据时不要对该进行查询。...TEXTBLOB类型只能使用前缀索引 因为MySQL对索引字段长度是有限制,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值。...1、区分度最高放在联合索引最左侧(区分度=不同值数量/总行数); 2、尽量把字段长度放在联合索引最左侧(因为字段长度越小,一页能存储数据量越大,IO性能也就越好); 3、使用最频繁放到联合索引左侧...索引set规范 尽量避免使用约束 1、不建议使用约束(foreign key),但一定要在表与表之间关联上建立索引; 2、外可用于保证数据参照完整性,但建议在业务端实现; 3、外会影响父表和子表写操作从而降低性能

    1.3K20

    MySQL编程规范

    采用合适分库分表策略。例如千库十表、十库百表等 尽可能不使用text’、‘blob’类型 用‘decimal’代替‘float’和‘double’存储精确浮点数 避免使用‘null’字段。...’存储大小写敏感变长字符串 禁止在数据库存储明文密码,把密码加密后存储 少用‘text/blob’,‘varchar’性能会比‘text’高很多,实在避免不了‘blob’,请拆表 数据库不允许存储大文件...每行记录物理长度不超过8KB 索引规范 索引数量要控制: 单张表索引数量不超过5个 单个索引字段数不超过5个 对字符串使⽤用前缀索引,前缀索引长度不超过8个字符 建议优先考虑前缀索引,超过20个长度字符串列...SQL优先考虑覆盖索引 避免冗余和重复索引 索引要综合评估数据密度和分布以及考虑查询和更新比例 索引禁忌 不在低基数列上建立索引,例如“性别” 不在索引进行数学运算和函数运算 尽量不使用,数据库是稀缺资源...,整个事务时间长度不要太长 应用不准使用触发器、函数、存储过程,除非二级主管和DBA特殊批准。

    1.5K10

    MySQL命名、设计及使用规范--------来自标点符《MySQL命名、设计及使用规范

    各表之间相同意义字段,以去掉模块前缀表名_字段名命名。 外字段用表名_字段名表示其关联关系。 表主键一般都约定成为id,自增类型,是别的表使用xxx_id方式来表明。...尽可能不使用TEXTBLOB类型 禁止在数据库中使用VARBINARY、BLOB存储图片、文件等。建议使用其他方式存储(TFS/SFS),MySQL只保存指针信息。...在存储或检索过程不进行大小写转换。 VARCHAR值为可变长字符串。长度可以指定为0到65,535之间值。(VARCHAR最大有效长度由最大行大小和使用字符集确定。...不要索引blob/text等字段,不要索引大型字段,这样做会让索引占用太多存储空间 什么是前缀索引?...存储引擎索引长度总和不能超过 1000 字节 BLOBTEXT 类型只能创建前缀索引 MYSQL 目前不支持函数索引 使用不等于 (!

    5.7K20

    MySQL数据库设计规范

    规范七,每一个表都需要设置主键。 表没有主键,innodb 会默认设置隐藏主键没有主键表在定位数据行时候非常困难,也会降低基于行复制效率。...如果(也许)需要用 text/lob 类型,建议把这些字段和其他字段分离,放在单独规范十三,字段长度定义遵循最小化原则,够用就行,不能贪图方便定义很大长度。...规范二十二,相同含义字段在不同表使用相同名称,数据类型及长度必须保持一致。...使用innodb,每一个表都必须有主键。如果没有指定主键,mysql 会选择一个非空唯一作为主键。如果都没有,mysql 会自动分配 6-bytes长度全局 rowid 隐藏列作为主键。...规范三十,对较长字符数据类型字段建索引,优先考虑前缀索引。 规范三十一,低选择性不加索引,外情况:对于状态数据分布非常倾斜,且查询条件没有其他更合适索引字段。

    2.3K20

    Mysql - 数据库面试题打卡第四天

    CHAR 和 VARCHAR 类型在存储和检索方面有所不同 CHAR 长度固定为创建表时声明长度长度值范围是 1 到 255 当 CHAR值被存储时,它们被用空格填充到特定长度,检索 CHAR 值时需删除尾随空格...在 MyISAM Static 上所有字段有固定宽度。动态 MyISAM Dynamic 表将具有像 TEXTBLOB 等字段,以适应 不同长度数据类型。...在 SELECT 语句比较中使用=,, =,>,>,,AND,OR 或 LIKE 运算符。 40、BLOBTEXT 有什么区别?...BLOB 是一个二进制对象,可以容纳可变数量数据。TEXT 是一个不区分大小写 BLOB。...BLOBTEXT 类型之间唯一区别在于对 BLOB 值进行排序和比较时区分大小 写,对 TEXT 值不区分大小写。

    1.2K30

    值得收藏:一份非常完整 MySQL 规范

    过大长度会消耗更多内存 2、避免使用TEXTBLOB数据类型,最常见TEXT类型可以存储64k数据 · 建议把BLOB或是TEXT分离到单独扩展表 Mysql内存临时表不支持TEXTBLOB...如果一定要使用,建议把BLOB或是TEXT分离到单独扩展表,查询时一定不要使用select * 而只需要取出必要,不需要TEXT数据时不要对该进行查询。...· TEXTBLOB类型只能使用前缀索引 因为MySQL对索引字段长度是有限制,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值。...· 区分度最高放在联合索引最左侧(区分度=不同值数量/总行数); · 尽量把字段长度放在联合索引最左侧(因为字段长度越小,一页能存储数据量越大,IO性能也就越好); · 使用最频繁放到联合索引左侧...九、索引SET规范 尽量避免使用约束 · 不建议使用约束(foreign key),但一定要在表与表之间关联上建立索引; · 外可用于保证数据参照完整性,但建议在业务端实现; · 外会影响父表和子表写操作从而降低性能

    89730

    值得收藏:一份非常完整 MySQL 规范

    过大长度会消耗更多内存 2、避免使用TEXTBLOB数据类型,最常见TEXT类型可以存储64k数据 · 建议把BLOB或是TEXT分离到单独扩展表 Mysql内存临时表不支持TEXTBLOB...如果一定要使用,建议把BLOB或是TEXT分离到单独扩展表,查询时一定不要使用select * 而只需要取出必要,不需要TEXT数据时不要对该进行查询。...· TEXTBLOB类型只能使用前缀索引 因为MySQL对索引字段长度是有限制,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值。...· 区分度最高放在联合索引最左侧(区分度=不同值数量/总行数); · 尽量把字段长度放在联合索引最左侧(因为字段长度越小,一页能存储数据量越大,IO性能也就越好); · 使用最频繁放到联合索引左侧...九、索引SET规范 尽量避免使用约束 · 不建议使用约束(foreign key),但一定要在表与表之间关联上建立索引; · 外可用于保证数据参照完整性,但建议在业务端实现; · 外会影响父表和子表写操作从而降低性能

    75630

    值得收藏:一份非常完整 MySQL 规范

    ,会造成列上索 引失效,导致查询效率降低) 二、数据库基本设计规范 1、所有表必须使用Innodb存储引擎 没有特殊要求(即Innodb无法满足功能如:存储,存储空间数据等)情况下,所有表必须使用...过大长度会消耗更多内存 2、避免使用TEXTBLOB数据类型,最常见TEXT类型可以存储64k数据 · 建议把BLOB或是TEXT分离到单独扩展表 Mysql内存临时表不支持TEXTBLOB...如果一定要使用,建议把BLOB或是TEXT分离到单独扩展表,查询时一定不要使用select * 而只需要取出必要,不需要TEXT数据时不要对该进行查询。...· TEXTBLOB类型只能使用前缀索引 因为MySQL对索引字段长度是有限制,所以TEXT类型只能使用前缀索引,并且TEXT列上是不能有默认值。...· 区分度最高放在联合索引最左侧(区分度=不同值数量/总行数); · 尽量把字段长度放在联合索引最左侧(因为字段长度越小,一页能存储数据量越大,IO性能也就越好); · 使用最频繁放到联合索引左侧

    96730

    数据库存储引擎比较

    Comment参数:指对该引擎评论。 Transactions参数:表示是否支持事务处理,YES表示可以使用,NO表示不能使用。 XA参数:表示是否分布式交易处理XA规范,YES表示支持。...存储表数据时,每张表存储都按主键顺序存放,如果没有显式在表定义时指定主键,InnoDB 会为每一行生成一个6字节ROWID,并以此作为主键。...每个索引最大数是16。 (4)最大长度是1000字节。这也可以通过编译来改变。对于长度超过250字节情况,使用一个超过1024字节块。 (5) BLOBTEXT可以被索引。...MEMORY主要特性如下: (1)MEMORY表可以有多达每个表32个索引,每个索引16,以及500字节最大长度。 (2)MEMORY 存储引擎执行HASH和 BTREE索引。...(3)可以在一个MEMORY 表中有非唯一。 (4)MEMORY 表使用一个固定记录长度格式。(5)MEMORY 不支持BLOBTEXT

    1.3K50

    数据库设计基本原则和主要步骤以及应注意什么?

    前言 在数据库设计时候一般要遵循一些规范,也是工作总结出来经验,拿来和大家分享 一、数据库设计基本原则 把具有同一个主题数据存储在一个数据表,“一表一用”。...、单实例表数目必须小于500 3.3.2、单表列数目必须小于30 3.3.3、表必须有主键,例如自增主键 3.3.4、禁止使用,如果有外完整性约束,需要应用程序控制外会导致表与表之间耦合,update...,增加数据库处理记录复杂性 3.4.2、禁止使用TEXTBLOB类型 会浪费更多磁盘和空间内存,非必要大量大字段查询会淘汰掉热数据,导致内存命中率急剧降低,影响数据库性能。...*,只获取必要字段,需要显示说明属性 读取不需要会增加CPU、IO、NET消耗 不能有效利用覆盖索引 使用select *容易在增加或者删除字段后出现程序BUG 3.6.2、禁止使用insert...into t_xxx values(xxx),必须显示执行插入属性 容易在增加或者删除字段后出现程序BUG 3.6.3、禁止使用属性隐式转换 Select uid from t_user where

    2.2K11
    领券