3分钟快速了解mysql和es中字段类型相似之处
Elasticsearch 和 MySQL 的字段类型在很多方面具有相似之处。这些相似之处主要反映在它们表示基本数据类型的能力上。下面是 Elasticsearch 和 MySQL 中一些相似的字段类型:
文本:
- Elasticsearch:
text
和keyword
- MySQL:
VARCHAR
,CHAR
,TEXT
,TINYTEXT
,MEDIUMTEXT
,LONGTEXT
在 Elasticsearch 中,
text
类型通常用于全文搜索,而keyword
类型用于精确值的字符串。在 MySQL 中,VARCHAR
和CHAR
类型用于存储可变长度和固定长度的字符串,而TEXT
类型及其变体用于存储较大的字符串。- Elasticsearch:
数值:
- Elasticsearch:
integer
、long
、short
、byte
、float
、double
、half_float
、scaled_float
- MySQL:
INT
,BIGINT
,SMALLINT
,TINYINT
,MEDIUMINT
,FLOAT
,DOUBLE
,DECIMAL
Elasticsearch 和 MySQL 都支持多种整数和浮点数类型。这些类型在两者之间具有相似的数据表示范围和精度。
- Elasticsearch:
日期:
- Elasticsearch:
date
- MySQL:
DATE
,DATETIME
,TIMESTAMP
Elasticsearch 和 MySQL 都支持日期类型,用于表示日期和时间。它们支持不同的日期格式,可以进行日期和时间的查询和计算。
- Elasticsearch:
布尔:
- Elasticsearch:
boolean
- MySQL:
BOOL
,BOOLEAN
Elasticsearch 和 MySQL 都支持布尔类型,用于表示
true
或false
。- Elasticsearch:
尽管 Elasticsearch 和 MySQL 在这些基本数据类型上具有相似之处,但它们在处理和查询数据的方式上有很大不同。Elasticsearch 是一个面向全文搜索和实时分析的分布式搜索引擎,而 MySQL 是一个关系型数据库管理系统,主要用于存储结构化数据。因此,它们在数据建模、索引、查询和性能优化等方面具有不同的特点和优势。
以下是一个 Elasticsearch 和 MySQL 示例,展示了如何使用两者分别存储和查询一组书籍数据。
假设我们有以下书籍数据:
- 书名: “活着”, 作者: “余华”, 出版日期: “1992-01-01”, 类别: “小说”
- 书名: “百年孤独”, 作者: “加西亚·马尔克斯”, 出版日期: “1967-05-30”, 类别: “小说”
- 书名: “人类简史”, 作者: “尤瓦尔·赫拉利”, 出版日期: “2011-01-01”, 类别: “历史”
在 Elasticsearch 中,我们可以执行以下操作:
- 创建一个名为
books
的索引:
curl -X PUT "localhost:9200/books?pretty" -H 'Content-Type: application/json' -d'
{"mappings": {"properties": {"title": { "type": "text" },"author": { "type": "keyword" },"publish_date": { "type": "date" },"category": { "type": "keyword" }}}
}'
- 向
books
索引中添加书籍文档:
# 添加《活着》
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{"title": "活着","author": "余华","publish_date": "1992-01-01","category": "小说"
}'# 添加《百年孤独》
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{"title": "百年孤独","author": "加西亚·马尔克斯","publish_date": "1967-05-30","category": "小说"
}'# 添加《人类简史》
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{"title": "人类简史","author": "尤瓦尔·赫拉利","publish_date": "2011-01-01","category": "历史"
}'
- 查询类别为 “小说” 的书籍:
curl -X GET "localhost:9200/books/_search?pretty" -H 'Content-Type: application/json' -d'
{"query": {"term": {"category": "小说"}}
}'
在 MySQL 中,我们可以执行以下操作:
- 创建一个名为
books
的表:
CREATE TABLE books (id INT AUTO_INCREMENT PRIMARY KEY,title VARCHAR(255),author VARCHAR(255),publish_date DATE,category VARCHAR(255)
);
- 向
books
表中插入数据:
INSERT INTO books (title, author, publish_date, category)
VALUES('活着', '余华', '1992-01-01', '小说'),
('百年孤独', '加西亚·马尔克斯', '1967-05-30', '小说'),
('人类简史', '尤瓦尔·赫拉利', '2011-01-01', '历史');
- 查询类别为 “小说” 的书籍:
SELECT * FROM books WHERE category = '小说';
这个例子展示了如何在 Elasticsearch 和 MySQL 中存储和查询相同的书籍数据。虽然它们的字段类型和查询语法有所不同,但都可以满足基本的数据存储和检索需求。需要注意的是,Elasticsearch 更擅长处理全文搜索和实时分析,而 MySQL 是关系型数据库,更适合存储结构化数据和处理复杂的关系查询。
3分钟快速了解mysql和es中字段类型相似之处相关推荐
- mysql 修改字段类型为字符串_MySQL中字段类型与合理的选择字段类型
原标题:MySQL中字段类型与合理的选择字段类型 字段类型 数值 MySQL 的数值数据类型可以大致划分为两个类别,一个是 整数,另一个是 浮点数或小数. 许多不同的子类型对这些类别中的每一个都是可用 ...
- MySQL中字段类型为longtext的值导出后显示二进制串
MySQL中字段类型为 longtext 的字段值保存的是Blob (Binary large objects),所以在导出sql或者将sql查询导出为其他格式的数据时,需要提前将字段类型转换一下,转 ...
- Mysql中字段类型之时间戳大坑
一 .环境说明: 在目前项目中,有这样的一张表,用来记录会议的相关信息,例如:会议的内容.会议的参会人员.会议的地点.会议的状态(会议是否已结束.会议是否被撤销).会议的开始时间以及该条信息的创建时间 ...
- Elasticsearch中字段类型(Field Type)详解
ElasticSearch 7.7 字段类型(Field datatype)详解 字符串, object, 数值, 日期, 数组, 0x00 字符串: text, keyword 5.0以后,stri ...
- 数据库中字段类型对应的C#中的数据类型
数据库中字段类型对应C#中的数据类型: 数据库 C#程序 int int32 text string bigint int64 binary System.Byte[] ...
- Access中字段类型及修改字段类型的SQL语句
Access中字段类型及修改字段类型的SQL语句 Access中的数据类型 Access中有10中数据类型:文本.备注.数值.日期/时间.货币.自动编号.是/否.OLE对象.超级链接.查询向导. 1. ...
- java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...
数据类型对照 点击打开链接 JDBC: PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuer ...
- 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型
问题描述: 使用MyBatis Plus 3.2.0版本插件代码生成器生成实体类后,对于数据库中字段类型datetime的字段会转变为LocalDateTime类型,IDEA提示报错"Usa ...
- mysql root用户可以同时几个人连接_重学MySQL系列(四):10分钟快速掌握MySQL用户与权限管理
在这篇文章中,我们来聊聊怎么管理MySQL的用户及如何为不同用户分配不同的管理权限,其实,在日常使用MySQL的过程中,这部分的工作是由DBA(数据管理员)来完成的. 而我们作为一般的开发人员,只要拿 ...
最新文章
- 2021年你不能错过的DevOps趋势
- ctags,cscope,nerdtree,tmux 笔记
- c++ 数组指针形参,并返回数据
- ADSL获取的IP地址与网关相同,却能上网的原理
- JavaIO4--ObjectInputStream和ObjectOutputStream
- 一些著名的软件都用什么语言编写?
- 怎么让员工服从管理_职场 | 在职场中,遇到不服从管理的员工,该怎么办呢?...
- 【OpenGL4.0】GLSL-Flat Shading平面着色
- Spark常用的算子以及Scala函数总结
- 官宣,港珠澳大桥终于来了
- C++中实现调用外部程序的方法
- MySQL 排序规则
- kanzi学习第二天-----创建一个状态机
- Java自动化测试系列[v1.0.0][TestNG测试开发环境配置]
- Centos7命令行方式安装DM
- 学渣的刷题之旅 leetcode刷题 26. 删除排序数组中的重复项
- Superpixel_Segmentation_With_Fully_Convolutional_Networks ---CVPR_2020_paper(翻译)
- 如何为窗体应用程序显示控制台
- 洛谷 P2216 [HAOI2007] 理想的正方形
- Unity 之 纹理类型导入设置和压缩格式介绍