TiDB下面 varchar和text字段类型的性能会不会存在差异

【 TiDB 使用环境】

TiDB下面 varchar和text字段类型的性能会不会存在差异,实现跟MySQL是否一致,底层KV存储的数据结构会有哪些不同?

这个问题我也想知道

在KV层应该没有什么差别吧

varchar和text类型之间当然是能用varchar就用varchar了,只有varchar实在满足不了text,才会考虑后者,这个跟mysql使用的选择一致吧。在tidb上,编码没有大的区别,存储也没有,都是编码在行记录的value里。

看mysql的相关文档:
• TEXT columns can only be indexed for a specified length. MySQL doesn’t index the full length of TEXT data types (except for full-text search indexes).
• The full length of the string can’t be used for sorting.
• Queries involving TEXT columns can lead to the creation of a temporary table on disk instead of in memory. This is because MySQL’s memory storage engine does not support TEXT data types. There is a significant performance penalty to using disk-based tables, which means queries using TEXT can be much slower.
• TEXT data may be stored off the table, with a pointer to the string stored on the table. Accessing data stored in this way is slower. VARCHAR data is always stored on the table. If data is frequently retrieved, inline storage offers faster performance.

请问,TiDB这里的TEXT data也是 stored off the table,Accessing data stored in this way is slower 吗

在查询上,会针对varchar和text类型,分别做不同的查询优化吗

mysql是把text字段单独存储的,这一点tidb没有采取这种方式,tidb应该不会有这种性能差异。

好的,明白了,谢谢~

key-value,相当于redis

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。