MySQL 使用Python代码批处理数据检索以提高检索速度和减少内存使用

MySQL 使用Python代码批处理数据检索以提高检索速度和减少内存使用

在进行数据传输或数据处理时,我们经常需要从MySQL中检索大量数据。使用Python可以轻松地连接MySQL数据库来检索数据,并且可以使用Python代码批处理数据检索以提高检索速度和减少内存使用。

阅读更多:MySQL 教程

创建MySQL数据库并插入数据

我们首先需要创建一个MySQL数据库并在其中插入数据以便进行检索。我们可以从命令行中访问MySQL来执行此操作。

  1. 首先,我们需要在本地计算机上安装MySQL

  2. 接下来,输入以下命令以启动MySQL服务器:

    $ mysql.server start
    
  3. 然后,输入以下命令以登录到MySQL shell:
    $ mysql -u root -p
    
  4. 输入您的密码以访问MySQL shell。

  5. 创建一个新的数据库。在此示例中,我们将其命名为“employees”:

    CREATE DATABASE employees;
    
  6. 现在,我们需要在employees数据库中创建一个名为“employees_table”的表:
    USE employees;
    CREATE TABLE employees_table (
       id INT(11) NOT NULL AUTO_INCREMENT,
       first_name VARCHAR(50) NOT NULL,
       last_name VARCHAR(50) NOT NULL,
       age INT(3) NOT NULL,
       PRIMARY KEY (id)
    );
    
  7. 插入一些数据来进行检索:
    INSERT INTO employees_table (first_name, last_name, age) VALUES
       ('John', 'Doe', '30'),
       ('Jane', 'Doe', '25'),
       ('Steve', 'Smith', '35'),
       ('Maria', 'Garcia', '28'),
       ('Bob', 'Johnson', '42');
    

    现在我们已经成功地创建了一个名为“employees_table”的表,并已插入了一些示例数据以供检索。

用Python从MySQL中批量检索数据

接下来,我们将演示如何使用Python来从名为“employees_table”的表中批量检索数据。我们将使用MySQL Connector / Python软件包来连接到我们的MySQL数据库。

  1. 首先,我们需要将MySQL Connector / Python软件包安装在计算机上。使用以下命令在命令行中安装:
    $ pip install mysql-connector-python
    
  2. 现在,我们将连接到我们的MySQL数据库并检索数据。创建一个Python脚本文件,并将以下代码添加到文件中:
    import mysql.connector
    
    # Establishing a connection to the database
    mydb = mysql.connector.connect(
       host="localhost",
       user="root",
       password="",
       database="employees"
    )
    
    # Retrieving data from the employees_table table
    mycursor = mydb.cursor(buffered=True)
    mycursor.execute("SELECT * FROM employees_table")
    
    # Fetching the first 3 rows
    print("Fetching the first 3 rows...")
    for i in range(3):
       row = mycursor.fetchone()
       print(row)
    
    # Fetching the next 2 rows
    print("\nFetching the next 2 rows...")
    for i in range(2):
       row = mycursor.fetchone()
       print(row)
    
    # Closing a cursor object
    mycursor.close()
    
    # Closing the database connection
    if (mydb.is_connected()):
       mydb.close()
       print("MySQL connection is closed")
    

    这段代码在连接到MySQL数据库后检索数据。我们使用了Python的“buffered”选项来缓存查询结果,以便我们可以使用游标检索结果。然后,我们使用游标批量检索数据,一次检索指定数量的数据。在这个例子中,我们首先检索前3行数据,然后检索下2行数据。

运行脚本并检查输出。您应该会看到前三个记录以及接下来的两个记录:

Fetching the first 3 rows...
(1, 'John', 'Doe', 30)
(2, 'Jane', 'Doe', 25)
(3, 'Steve', 'Smith', 35)

Fetching the next 2 rows...
(4, 'Maria', 'Garcia', 28)
(5, 'Bob', 'Johnson', 42)

MySQL connection is closed

我们成功地从MySQL的“employees_table”表中使用Python批量检索了数据。这种方法对于大量数据的检索非常有用,因为它减少了内存的使用,并且可以更快地检索数据。

使用Python Pandas模块批量检索MySQL数据

除了使用MySQL连接器/Python软件包来批量检索MySQL数据之外,您还可以使用pandas模块。Pandas是一个流行的Python数据处理库,可以用于快速处理和分析数据,而且非常适合进行批量数据检索。

  1. 首先,我们需要在计算机上安装Pandas模块。使用以下命令在命令行中安装:
    $ pip install pandas
    
  2. 接下来,我们将连接到MySQL数据库并检索数据。创建一个Python脚本文件,并将以下代码添加到文件中:
    import pandas as pd
    import mysql.connector
    
    # Establishing a connection to the database
    mydb = mysql.connector.connect(
       host="localhost",
       user="root",
       password="",
       database="employees"
    )
    
    # Retrieving data from the employees_table table
    query = "SELECT * FROM employees_table"
    df = pd.read_sql(query, con=mydb)
    
    # Fetching the first 3 rows
    print("Fetching the first 3 rows...\n")
    first_three_rows = df.head(3)
    print(first_three_rows)
    
    # Fetching the next 2 rows
    print("\nFetching the next 2 rows...\n")
    next_two_rows = df.iloc[3:5]
    print(next_two_rows)
    
    # Closing the database connection
    if (mydb.is_connected()):
       mydb.close()
       print("MySQL connection is closed")
    

    这段代码在连接到MySQL数据库后检索数据。我们使用pandas的“read_sql”功能来将MySQL查询的结果转换为DataFrame。然后,我们批量检索数据,一次检索指定数量的数据。在这个例子中,我们首先检索前3行数据,然后检索下2行数据。

运行脚本并检查输出。您应该会看到前三个记录以及接下来的两个记录:

Fetching the first 3 rows...

   id first_name last_name  age
0   1       John       Doe   30
1   2       Jane       Doe   25
2   3      Steve     Smith   35

Fetching the next 2 rows...

   id first_name last_name  age
3   4      Maria    Garcia   28
4   5        Bob   Johnson   42

MySQL connection is closed

我们成功地使用pandas模块从MySQL数据库中批量检索了数据,这种方法非常适合进行大量数据的批量检索和数据处理。

总结

在本文中,我们演示了如何使用Python从MySQL中批量检索数据。我们使用了MySQL Connector / Python软件包和pandas模块来实现这一点,并演示了如何批量检索数据以提高检索速度和减少内存使用。这是对于需要使用MySQL进行数据检索和处理的Python开发人员来说非常有用的技术。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程