【Mysql】Mysql Json类型或Text类型可以建索引吗?

一、JSON类型

答案是不可以

为Json类型建索引会报错

mysql> CREATE INDEX idx1 ON user (card_pay_data(10));
ERROR 3152 (42000): JSON column ‘card_pay_data‘ cannot be used in key specification.

二、text类型

答案是可以的,但是需要指定长度

mysql> CREATE INDEX idx2 ON user (tests);
ERROR 1170 (42000): BLOB/TEXT column ‘tests‘ used in key specification without a key length
mysql> CREATE INDEX idx2 ON user (tests(10));
Query OK, 0 rows affected (0.03 sec)
Records: 0  Duplicates: 0  Warnings: 0

原文地址:https://www.cnblogs.com/756623607-zhang/p/10674447.html

时间: 2024-08-05 05:56:52

【Mysql】Mysql Json类型或Text类型可以建索引吗?的相关文章

着重基础之—MySql Blob类型和Text类型

着重基础之—MySql Blob类型和Text类型—二进制存储 在经历了几个Java项目后,遇到了一些问题,在解决问题中体会到基础需要不断的回顾与巩固. 最近做的项目中,提供给接口调用方数据同步接口,传输的数据格式是Json串.由于json串的结构层级较多,数据量也不少.在设计数据库的时候,选择了Blob类型做为字段类型.一切的一切就打这开始,同步服务正常运作,但是问题慢慢的暴露了出来,客户端在暂时我所提供的数据的时候,中文总是显示乱码,乱码,乱码,一直乱码. 问题的分析路径 1.查看了数据库连

关于java中char类型和int类型相加结果的面试题

运行结果为 3 51 C 故而总结了以下几点: 举例子说明一下. System.out.println('0'+'A');// 48+65 = 113 未指定类型--输出int System.out.println((char)('0'+'A'));// q 强转char --输出char System.out.println(10+'A'); //75 未指定类型--输出int System.out.println((char)10+'A'); //75 未指定类型--输出int System

MySQL对JSON类型UTF-8编码导致中文乱码探讨

前言 继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中文出现乱码还有可深挖之处,接下来我们来分析一下,若有错误之处,还请批评指出. 字符编码 评论中指出任何不在基本多文本平面的Unicode字符,都无法使用MySQL的utf8字符集存储,包括Emoji 表情(Emoji 是一种特殊的Unicode 编码,常见于IOS和Android 手机上)和很多不常

【MySQL】使用Length和Cast函数计算TEXT类型字段的长度

背景: 前段时间,业务需要,为了快速让解析的Excel入库,所以把不是很确定的字段全部设置成了TEXT. 今天需要进行表结构优化,把字段长度控制在合适的范围,并尽量不使用TEXT类型. -- 计算长度select LENGTH(CAST(fileName AS CHAR)) from files; select MAX(LENGTH(CAST(fileName AS CHAR))) from files; select LENGTH(CAST(fileName AS CHAR)) as le f

Mysql text类型字段存储提示错误信息 String data,right truncated:1406 Data too long for column 'content' at row 1

String data,right truncated:1406 Data too long for column 'content' at row 1 当Mysql提示如下时: 1.首先查看存入的文本内容的大小,根据内容大小设置类型 如果超出,根据大小进行更换类型 2.如果还是超出那可能是Mysql根据配置文件限制Server接受数据包大小,有时候大的插入和更新会受max_allowed_packet参数限制,导致写入或者更新失败. 查看目前配置: 代码如下: 以上说明目前的配置是:60 M

【20181101】MySQL text类型的column设置为NOT NULL 导致主从1364

环境 系统版本 : CentOS release 6.8 (Final) MySQL版本:5.6.29-log MySQL Community Server (GPL) MySQL主从配置信息 binlog format :MIXED sql_mode: NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 问题描述 从库show slave status监控的时候发现sql_thread进程已经变成NO,并且爆出了1362错误,仔细查看报错的是一条insert

mysql 查询json类型数据

如果 t1表里有一个extra字段,字段是text类型,数据为json格式  {"value":"XMjgxIqqqqqqqqqq"} 如何获取json里面value对于的值呢? JSON_EXTRACT(t1.extra,'$.value') 得到 "XMjgxIqqqqqqqqqq" 原始sql和原始结果 select t1.id AS item_id, t1.title AS item_name,t6.id AS topic_id, t6.

mysql基础-数据类型和sql模式-学习之(三)

0x01 mysql的两种方向: 开发DBA:数据库设计(E-R关系图).sql开发.内置函数.存储历程(存储过程和存储函数).触发器.时间调度器(event scheduler) 运维---->管理DBA:安装.升级.备份.恢复.用户管理.权限管理.监控.分析.基准测试,语句优化(SQL语句).数据字典,按需要配置服务器(服务器变量:MyISAM,InnoDB,缓存,日志)SQL 语言组成部分: DDL:数据定义语言 DML:数据操作语言 完整性定义语言,DDL的一部分功能 主键约束.外键约束

python json及mysql——读取json文件存sql、数据库日期类型转换、终端操纵mysql及python codecs读取大文件问题

preface: 近期帮师兄处理json文件,须要读到数据库里面,以备其兴许从数据库读取数据.数据是关于yelp站点里面的: https://github.com/Yelp/dataset-examples,http://www.yelp.com/dataset_challenge/. 涉及到一些json和sql的问题,记录下. 一.python sql安装 python 自带轻型数据库sqlite,只是用不了.须要mysql才行.pip安装mysql失败.easy_install安装也失败.这