MySQL 使用Python代码批处理数据检索以提高检索速度和减少内存使用
在进行数据传输或数据处理时,我们经常需要从MySQL中检索大量数据。使用Python可以轻松地连接MySQL数据库来检索数据,并且可以使用Python代码批处理数据检索以提高检索速度和减少内存使用。
阅读更多:MySQL 教程
创建MySQL数据库并插入数据
我们首先需要创建一个MySQL数据库并在其中插入数据以便进行检索。我们可以从命令行中访问MySQL来执行此操作。
- 首先,我们需要在本地计算机上安装MySQL。
-
接下来,输入以下命令以启动MySQL服务器:
$ mysql.server start
- 然后,输入以下命令以登录到MySQL shell:
$ mysql -u root -p
- 输入您的密码以访问MySQL shell。
-
创建一个新的数据库。在此示例中,我们将其命名为“employees”:
CREATE DATABASE employees;
- 现在,我们需要在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) );
- 插入一些数据来进行检索:
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数据库。
- 首先,我们需要将MySQL Connector / Python软件包安装在计算机上。使用以下命令在命令行中安装:
$ pip install mysql-connector-python
- 现在,我们将连接到我们的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数据处理库,可以用于快速处理和分析数据,而且非常适合进行批量数据检索。
- 首先,我们需要在计算机上安装Pandas模块。使用以下命令在命令行中安装:
$ pip install pandas
- 接下来,我们将连接到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开发人员来说非常有用的技术。