sql的使用

MySQL、PostgreSQL关系型和MongoDB 和 Redis非关系型数据库

一、前期准备

在安装和使用数据库之前,确保你的 CentOS 7 系统具备以下条件:

  • 系统安装了基本的开发工具:如 gccmake 等。
  • 有权限使用 sudo 命令。
  • 有良好的网络环境以下载软件包。

你可以通过以下命令确保系统软件包是最新的:

bash 复制代码
sudo yum update -y

二、关系型数据库

1. MySQL

MySQL 是最流行的开源关系型数据库之一,广泛应用于Web应用、ERP系统等场景。接下来详细讲解如何在 CentOS 7上安装、配置、使用以及开发中的 SQL 示例。

1.1 CentOS 7 安装 MySQL
  1. 安装 MySQL 官方源

    CentOS 7 默认的 yum 源中没有 MySQL,因此需要先下载安装 MySQL 官方源。

    bash 复制代码
    sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
  2. 安装 MySQL

    bash 复制代码
    sudo yum install mysql-server -y
  3. 启动 MySQL 并设置为开机自启

    bash 复制代码
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
  4. 设置初始 root 密码

    MySQL 安装完成后会生成一个初始密码,使用以下命令查看:

    bash 复制代码
    sudo grep 'temporary password' /var/log/mysqld.log

    使用这个密码登录并强制修改:

    bash 复制代码
    mysql -u root -p
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
1.2 MySQL 开发使用
  1. 创建数据库

    sql 复制代码
    CREATE DATABASE testdb;
  2. 创建表

    sql 复制代码
    USE testdb;
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        username VARCHAR(50),
        email VARCHAR(50),
        password VARCHAR(255)
    );
  3. 插入数据

    sql 复制代码
    INSERT INTO users (username, email, password) VALUES ('user1', 'user1@example.com', 'pass123');
  4. 查询数据

    sql 复制代码
    SELECT * FROM users;
  5. 高级操作:复杂查询与事务

    • 联合查询

      sql 复制代码
      SELECT u.username, o.order_id FROM users u JOIN orders o ON u.id = o.user_id;
    • 事务操作

      sql 复制代码
      START TRANSACTION;
      UPDATE users SET password='newpass' WHERE username='user1';
      COMMIT;

MySQL 多表查询

MySQL 多表查询是关系型数据库中一个非常重要的功能,它允许开发者从多个相关表中获取数据。MySQL 提供了多种方式来进行多表查询,常见的有 连接查询(JOIN)子查询(Subquery)。掌握这些技巧是数据库设计与查询优化中的核心技能。

以下是 MySQL 多表查询的总结,涵盖了常用的连接类型、子查询以及实际应用中的查询示例。


一、连接查询(JOIN)

1.1 INNER JOIN(内连接)

内连接是最常见的连接查询,它只返回两个表中匹配条件的数据。如果某一行在其中一个表中不存在对应的匹配行,那么该行将不会出现在结果集中。

语法

sql 复制代码
SELECT columns
FROM table1
INNER JOIN table2 ON table1.column = table2.column;

示例

假设有两个表:

  • orders 表(存储订单信息)
  • customers 表(存储客户信息)

我们希望查询每个订单对应的客户信息:

sql 复制代码
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;

此查询返回订单和客户的匹配结果,仅显示那些在 orders 表中有订单,并且在 customers 表中有对应客户的记录。


1.2 LEFT JOIN(左连接)

左连接 返回左表中的所有行,即使右表中没有匹配的数据,右表中的数据为空(NULL)。

语法

sql 复制代码
SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column;

示例

我们希望查询所有订单,包括那些没有匹配到客户的订单:

sql 复制代码
SELECT orders.order_id, customers.customer_name, orders.order_date
FROM orders
LEFT JOIN customers ON orders.customer_id = customers.customer_id;

此查询会显示所有订单,即使某些订单的客户信息缺失。


1.3 RIGHT JOIN(右连接)

右连接与左连接相反,它返回右表中的所有行,即使左表中没有匹配的数据。

语法

sql 复制代码
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;

示例

我们希望查询所有客户,包括那些没有下订单的客户:

sql 复制代码
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

此查询会显示所有客户信息,包含那些没有订单的客户。


1.4 FULL JOIN(全连接)

全连接 返回两个表中的所有行,不论是否匹配。MySQL 本身不直接支持 FULL JOIN,但可以通过使用 UNION 结合 LEFT JOINRIGHT JOIN 来实现全连接。

语法

sql 复制代码
SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column
UNION
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column;

示例

返回所有客户和订单,不论是否有匹配关系:

sql 复制代码
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id
UNION
SELECT customers.customer_name, orders.order_id, orders.order_date
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;

1.5 CROSS JOIN(交叉连接)

交叉连接会返回两个表的笛卡尔积,即每一个表中的行都和另一个表中的每一行进行组合,不考虑是否有匹配条件。

语法

sql 复制代码
SELECT columns
FROM table1
CROSS JOIN table2;

示例

查询所有产品与所有订单的组合:

sql 复制代码
SELECT products.product_name, orders.order_id
FROM products
CROSS JOIN orders;

此查询返回所有产品和订单的每一种组合。


二、子查询(Subquery)

2.1 单行子查询

单行子查询返回一行数据,常用于条件判断。

语法

sql 复制代码
SELECT columns
FROM table
WHERE column = (SELECT value FROM other_table WHERE condition);

示例

查询下单次数最多的客户信息:

sql 复制代码
SELECT * 
FROM customers 
WHERE customer_id = (SELECT customer_id 
                     FROM orders 
                     GROUP BY customer_id 
                     ORDER BY COUNT(*) DESC LIMIT 1);

2.2 多行子查询

多行子查询 返回多行数据,常与 INANYALL 等关键字一起使用。

语法

sql 复制代码
SELECT columns
FROM table
WHERE column IN (SELECT column FROM other_table WHERE condition);

示例

查询下过订单的所有客户信息:

sql 复制代码
SELECT * 
FROM customers 
WHERE customer_id IN (SELECT customer_id FROM orders);

2.3 相关子查询

相关子查询是指子查询依赖于外部查询的值。与普通子查询不同,它在外部查询的每一行执行一次。

语法

sql 复制代码
SELECT columns
FROM table1 AS t1
WHERE column = (SELECT value FROM table2 AS t2 WHERE t1.column = t2.column);

示例

查询订单金额大于所有该客户历史订单平均金额的订单:

sql 复制代码
SELECT order_id, order_total
FROM orders AS o1
WHERE order_total > (SELECT AVG(order_total)
                     FROM orders AS o2
                     WHERE o1.customer_id = o2.customer_id);

三、联合查询(UNION)

UNION 用于合并两个或多个 SELECT 查询的结果。每个查询的列数和数据类型必须匹配。

语法

sql 复制代码
SELECT columns FROM table1
UNION
SELECT columns FROM table2;

示例

查询所有客户和供应商的名称(假设有 customerssuppliers 表):

sql 复制代码
SELECT customer_name AS name FROM customers
UNION
SELECT supplier_name AS name FROM suppliers;

注意

  • UNION 默认去重,可以使用 UNION ALL 显示所有结果,包括重复项。

四、总结

  1. 内连接(INNER JOIN) 是最常用的多表查询方式,只返回两个表之间匹配的数据。用于查找共有信息。
  2. 左连接(LEFT JOIN)右连接(RIGHT JOIN) 用于在查询中保留一方表的所有数据,即使另一方没有匹配数据。
  3. 全连接(FULL JOIN) 可以通过 UNION 来模拟,它返回两个表中的所有数据,不论是否有匹配项。
  4. 交叉连接(CROSS JOIN) 用于生成笛卡尔积,慎用。
  5. 子查询(Subquery) 用于嵌套查询,单行子查询和多行子查询在复杂查询中非常有用。
  6. 联合查询(UNION) 合并多个查询的结果集,但需要保证各查询的列数和类型相同。

通过理解这些查询方式,开发者能够轻松地处理多表数据操作,实现复杂业务逻辑。

1.3 PC 上的 MySQL 安装

在 PC(Windows 或 macOS)上安装 MySQL,可以通过 MySQL 官网下载合适版本:

下载完成后按照安装向导安装,并根据需求设置用户名和密码。


2. PostgreSQL

PostgreSQL 是一个高扩展性和标准化的关系型数据库,支持复杂的数据类型和查询,常用于金融、GIS等高要求的数据处理场景。

2.1 CentOS 7 安装 PostgreSQL
  1. 添加 PostgreSQL 仓库

    bash 复制代码
    sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  2. 安装 PostgreSQL

    bash 复制代码
    sudo yum install -y postgresql10-server postgresql10
  3. 初始化数据库并启动

    bash 复制代码
    sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
    sudo systemctl start postgresql-10
    sudo systemctl enable postgresql-10
2.2 PostgreSQL 开发使用
  1. 创建用户和数据库

    bash 复制代码
    sudo -u postgres psql

    psql 中:

    sql 复制代码
    CREATE USER devuser WITH PASSWORD 'devpassword';
    CREATE DATABASE devdb OWNER devuser;
    GRANT ALL PRIVILEGES ON DATABASE devdb TO devuser;
  2. 表和数据操作

    sql 复制代码
    \c devdb;
    CREATE TABLE products (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100),
        price NUMERIC(12, 2)
    );
    INSERT INTO products (name, price) VALUES ('Laptop', 999.99);
    SELECT * FROM products;
  3. 高级操作:复杂查询与函数

    • 窗口函数

      sql 复制代码
      SELECT name, price, RANK() OVER (ORDER BY price DESC) FROM products;
    • 自定义函数

      sql 复制代码
      CREATE FUNCTION calculate_discount(price NUMERIC) RETURNS NUMERIC AS $$
      BEGIN
          RETURN price * 0.9;
      END;
      $$ LANGUAGE plpgsql;

  1. MySQLPostgreSQL 是关系型数据库,适合复杂事务和查询的场景。MySQL 更加简便,PostgreSQL 更加标准化和强大

三、非关系型数据库

1. MongoDB

MongoDB 是一种文档型的 NoSQL 数据库,使用 JSON 风格的 BSON 文档存储数据,常用于海量数据存储和实时分析场景。

1.1 CentOS 7 安装 MongoDB
  1. 添加 MongoDB 仓库

    bash 复制代码
    cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.4.repo
    [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    EOF
  2. 安装 MongoDB

    bash 复制代码
    sudo yum install -y mongodb-org
  3. 启动 MongoDB

    bash 复制代码
    sudo systemctl start mongod
    sudo systemctl enable mongod
1.2 MongoDB 开发使用
  1. 连接 MongoDB

    bash 复制代码
    mongo
  2. 创建数据库与集合

    javascript 复制代码
    use mydb;
    db.createCollection("users");
    db.users.insert({ name: "Alice", age: 25, email: "alice@example.com" });
  3. 查询数据

    javascript 复制代码
    db.users.find();
  4. 高级操作:索引与聚合

    • 创建索引

      javascript 复制代码
      db.users.createIndex({ email: 1 });
    • 聚合操作

      javascript 复制代码
      db.users.aggregate([
        { $match: { age: { $gt: 20 } } },
        { $group: { _id: null, avgAge: { $avg: "$age" } } }
      ]);

2. Redis

Redis 是一种基于内存的键值存储数据库,广泛用于缓存、消息队列等需要高性能的场景。

2.1 CentOS 7 安装 Redis
  1. 安装 EPEL 仓库

    bash 复制代码
    sudo yum install epel-release -y
  2. 安装 Redis

    bash 复制代码
    sudo yum install redis -y
  3. 启动 Redis

    bash 复制代码
    sudo systemctl start redis
    sudo systemctl enable redis
2.2 Redis 开发使用
  1. 连接 Redis

    bash 复制代码
    redis-cli
  2. 基本操作

    bash 复制代码
    SET user:1 "Alice"
    GET user:1
  3. 高级操作:集合与发布订阅

    • 集合操作

      bash 复制代码
      SADD myset "item1" "item2" "item3"
      SMEMBERS myset
    • 发布订阅

      bash 复制代码
      SUBSCRIBE mychannel
      PUBLISH mychannel "Hello, Redis!"

连接工具

在 CentOS 7 环境中,安装好 MySQL、PostgreSQL、MongoDB 和 Redis 后,可以使用图形化界面工具和命令行工具连接和管理数据库。以下是常用的数据库连接工具介绍,以及它们在不同操作系统下的安装方式。

1. MySQL

常用连接工具
  • MySQL Workbench: 官方提供的图形化管理工具,支持查询、设计和管理 MySQL 数据库。
  • DBeaver: 一款跨平台数据库管理工具,支持多种数据库,包括 MySQL。
  • HeidiSQL: 轻量级的 MySQL 图形化管理工具。
安装和使用
  • MySQL Workbench

    • Windows 和 macOS 可以直接从 MySQL Workbench 官方网站 下载并安装。

    • CentOS 安装:

      bash 复制代码
      sudo yum install mysql-workbench
  • DBeaver

    • DBeaver 在 官方页面 提供下载包,支持多平台。
    • CentOS 安装:
      1. 下载 DBeaver 的 RPM 包:

        bash 复制代码
        wget https://dbeaver.io/files/dbeaver-ce-latest-stable.x86_64.rpm
      2. 安装 DBeaver:

        bash 复制代码
        sudo yum install -y ./dbeaver-ce-latest-stable.x86_64.rpm
  • HeidiSQL(仅支持 Windows):

连接示例
  1. 打开 MySQL Workbench 或 DBeaver。
  2. 选择 "New Connection"。
  3. 输入以下连接信息:
    • Host : localhost(或远程服务器的 IP 地址)
    • Port : 3306
    • Username : root
    • Password: 你设置的密码
    • Database : mydb(可选)

2. PostgreSQL

常用连接工具
  • pgAdmin: 官方提供的图形化管理工具,支持查询、设计和管理 PostgreSQL 数据库。
  • DBeaver: 同样支持 PostgreSQL。
安装和使用
  • pgAdmin

    • Windows 和 macOS 用户可以从 pgAdmin 官方网站 下载。
    • CentOS 安装:
      1. 安装 EPEL 仓库:

        bash 复制代码
        sudo yum install -y epel-release
      2. 安装 pgAdmin 4:

        bash 复制代码
        sudo yum install -y pgadmin4
  • DBeaver:如上所述,DBeaver 支持 PostgreSQL。

连接示例
  1. 打开 pgAdmin 或 DBeaver。
  2. 创建一个新连接,输入以下信息:
    • Host : localhost(或远程服务器的 IP 地址)
    • Port : 5432
    • Username : postgres(或创建的用户)
    • Password: 对应用户密码
    • Database : mydb(可选)

3. MongoDB

常用连接工具
  • MongoDB Compass: MongoDB 官方提供的图形化工具,支持管理和查询 MongoDB 数据。
  • Robo 3T: 轻量级的 MongoDB 管理工具。
安装和使用
  • MongoDB Compass

    • MongoDB 官方网站 下载适用于你的系统的 Compass 版本。
    • CentOS 安装:
      1. 下载 MongoDB Compass:

        bash 复制代码
        wget https://downloads.mongodb.com/compass/mongodb-compass-1.33.1.x86_64.rpm
      2. 安装 Compass:

        bash 复制代码
        sudo yum install -y ./mongodb-compass-1.33.1.x86_64.rpm
  • Robo 3T

连接示例
  1. 打开 MongoDB Compass 或 Robo 3T。
  2. 输入以下连接信息:
    • Host : localhost
    • Port : 27017
    • Authentication: 使用你设置的用户名和密码(如果启用了身份验证)
    • Database : mydb(可选)

4. Redis

常用连接工具
  • RedisInsight: Redis 官方提供的图形化管理工具,支持 Redis 查询和数据管理。
  • Another Redis Desktop Manager (RDM): 跨平台的 Redis 管理工具。
安装和使用
连接示例
  1. 打开 RedisInsight 或 RDM。
  2. 新建一个 Redis 连接,输入以下信息:
    • Host : localhost(或远程 Redis 服务器的 IP 地址)
    • Port : 6379
    • Password: 如果 Redis 设置了密码,请填写,否则留空。

总结

  • MySQL:可使用 MySQL Workbench、DBeaver、HeidiSQL 等工具。
  • PostgreSQL:可使用 pgAdmin、DBeaver 等工具。
  • MongoDB:可使用 MongoDB Compass、Robo 3T 等工具。
  • Redis:可使用 RedisInsight、RDM 等工具。

这些工具提供了方便的图形界面,帮助开发者可视化管理数据库,执行查询,并进行调试和优化。

Elasticsearch

Elasticsearch 是一款开源的分布式搜索引擎,专为全文搜索、结构化数据搜索和分析而设计。它属于 NoSQL 数据库范畴,但其主要用途是搜索和分析大规模的文本和数据。Elasticsearch 具有高扩展性、实时搜索和分布式架构等特点,被广泛应用于日志分析、搜索引擎、推荐系统等场景。

以下是 Elasticsearch 从安装到开发的全流程总结,适用于 CentOS 7 服务器和本地开发环境。


一、Elasticsearch 概述

1. 特性:

  • 全文搜索:能够在海量文档中进行快速的全文搜索。
  • 分布式架构:内置分片和副本机制,可以轻松扩展到数千个节点。
  • 实时分析:通过 Kibana、Logstash 等工具进行实时的数据分析。
  • 多租户支持:可以处理多种类型的数据,并针对不同的数据类型进行索引和查询。

2. 典型使用场景:

  • 日志分析:通过 Elasticsearch、Logstash 和 Kibana(即 ELK Stack)构建实时日志分析平台。
  • 全文检索:在大型文档集内进行关键词搜索,如电子商务网站的产品搜索。
  • 监控与报警:与 Beats 或其他数据采集工具结合,用于监控系统的各类指标数据并触发报警。

二、Elasticsearch 安装(CentOS 7)

1. 添加 Elasticsearch 仓库

首先,确保 CentOS 7 已经安装 wget,并添加 Elasticsearch 的 yum 源。

bash 复制代码
sudo yum install -y wget
sudo wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-x86_64.rpm
sudo rpm --install elasticsearch-7.10.0-x86_64.rpm

2. 配置 Elasticsearch

Elasticsearch 的配置文件位于 /etc/elasticsearch/elasticsearch.yml,你可以通过编辑该文件进行设置:

bash 复制代码
sudo vi /etc/elasticsearch/elasticsearch.yml

一些重要的配置项:

  • 集群名称 :定义集群的名字,如 cluster.name: my-cluster
  • 节点名称 :配置节点的名称,如 node.name: node-1
  • 网络绑定 :配置 Elasticsearch 可以监听的地址,如 network.host: 0.0.0.0 以允许外部访问。

3. 启动和设置自启

bash 复制代码
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

4. 验证 Elasticsearch 运行状态

你可以通过 HTTP 请求验证 Elasticsearch 是否成功启动:

bash 复制代码
curl -X GET "localhost:9200/"

若一切正常,将返回 Elasticsearch 的基本信息,如版本号等。


三、Elasticsearch 核心概念

1. 索引(Index)

  • Elasticsearch 中的数据存储在索引(类似于关系型数据库中的数据库)中。
  • 每个索引都有多个文档 ,并且每个文档都有一组字段,类似于关系型数据库的表和行。

2. 文档(Document)

  • 文档是 Elasticsearch 中最基本的数据单位,每个文档可以理解为一条 JSON 格式的数据。

3. 分片与副本(Shard & Replica)

  • 分片:数据被水平切分到多个分片中,使得 Elasticsearch 能够水平扩展。
  • 副本:每个分片有多个副本,以确保数据的高可用性。

四、Elasticsearch 开发使用

1. 插入数据(Indexing)

可以通过 POST 请求将文档插入 Elasticsearch 索引。

bash 复制代码
curl -X POST "localhost:9200/my_index/_doc/1" -H 'Content-Type: application/json' -d'
{
  "name": "Alice",
  "age": 30,
  "city": "New York"
}'

该命令会在 my_index 索引中插入一条文档,ID 为 1。

2. 查询数据(Searching)

使用 GET 请求来查询数据。

  • 简单查询

    bash 复制代码
    curl -X GET "localhost:9200/my_index/_search?q=name:Alice"
  • 复杂查询

    使用 POST 请求可以进行更复杂的查询,如多字段匹配:

    bash 复制代码
    curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
    {
      "query": {
        "bool": {
          "must": [
            { "match": { "name": "Alice" } },
            { "range": { "age": { "gte": 25 } } }
          ]
        }
      }
    }'

3. 更新数据(Updating)

使用 POST 请求可以更新已有文档中的数据。

bash 复制代码
curl -X POST "localhost:9200/my_index/_update/1" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "age": 31
  }
}'

4. 删除数据(Deleting)

使用 DELETE 请求可以删除索引或文档。

  • 删除文档:

    bash 复制代码
    curl -X DELETE "localhost:9200/my_index/_doc/1"
  • 删除整个索引:

    bash 复制代码
    curl -X DELETE "localhost:9200/my_index"

五、Elasticsearch 高级操作

1. 索引映射(Index Mapping)

在 Elasticsearch 中,映射(mapping)定义了字段的数据类型以及如何处理这些字段。例如,可以将 age 字段设置为整数类型。

bash 复制代码
curl -X PUT "localhost:9200/my_index" -H 'Content-Type: application/json' -d'
{
  "mappings": {
    "properties": {
      "name": { "type": "text" },
      "age": { "type": "integer" },
      "city": { "type": "keyword" }
    }
  }
}'

2. 聚合查询(Aggregation)

Elasticsearch 强大的聚合功能允许对数据进行分组和统计。以下示例展示了按城市进行分组,并计算每个城市的用户数量。

bash 复制代码
curl -X POST "localhost:9200/my_index/_search" -H 'Content-Type: application/json' -d'
{
  "size": 0,
  "aggs": {
    "group_by_city": {
      "terms": { "field": "city.keyword" }
    }
  }
}'

3. 分片与集群管理

在生产环境中,Elasticsearch 通常运行在集群模式下,多个节点组成集群。通过分片和副本配置,可以管理和扩展集群容量。

  • 查看分片状态:

    bash 复制代码
    curl -X GET "localhost:9200/_cat/shards"
  • 动态调整副本数:

    bash 复制代码
    curl -X PUT "localhost:9200/my_index/_settings" -H 'Content-Type: application/json' -d'
    {
      "index": {
        "number_of_replicas": 2
      }
    }'

六、Elasticsearch 可视化工具:Kibana

为了更方便地管理和分析 Elasticsearch 中的数据,可以使用 Kibana,它是 Elastic Stack 的一部分,主要用于数据可视化。

1. 安装 Kibana

bash 复制代码
sudo yum install kibana -y
sudo systemctl start kibana
sudo systemctl enable kibana

Kibana 启动后,默认通过 http://localhost:5601 访问。你可以通过 Kibana 的图形界面来进行数据分析和可视化。


七、总结

  1. Elasticsearch 是一种非常适合全文搜索和实时数据分析的分布式搜索引擎,特别适合处理大规模的非结构化数据。
  2. 它支持分布式架构实时搜索高扩展性等特点,是构建搜索引擎和日志分析系统的理想选择。
  3. 通过结合 KibanaLogstash 等工具,能够轻松构建一个功能强大的数据处理与分析平台。
相关推荐
White_Mountain17 分钟前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
Code apprenticeship17 分钟前
怎么利用Redis实现延时队列?
数据库·redis·缓存
百度智能云技术站21 分钟前
广告投放系统成本降低 70%+,基于 Redis 容量型数据库 PegaDB 的方案设计和业务实践
数据库·redis·oracle
装不满的克莱因瓶23 分钟前
【Redis经典面试题六】Redis的持久化机制是怎样的?
java·数据库·redis·持久化·aof·rdb
清平乐的技术专栏41 分钟前
Hive SQL 查询所有函数
hive·hadoop·sql
梦想平凡2 小时前
PHP 微信棋牌开发全解析:高级教程
android·数据库·oracle
TianyaOAO2 小时前
mysql的事务控制和数据库的备份和恢复
数据库·mysql
Ewen Seong2 小时前
mysql系列5—Innodb的缓存
数据库·mysql·缓存
码农老起3 小时前
企业如何通过TDSQL实现高效数据库迁移与性能优化
数据库·性能优化
夏木~4 小时前
Oracle 中什么情况下 可以使用 EXISTS 替代 IN 提高查询效率
数据库·oracle