以下是一个较大的 PHP 脚本的一部分,该脚本使用 CSV 文件和客户端 ID 字段作为输入来向 MySQL 数据库中添加或禁用用户。
涉及到两个表格,即 users 和 users_clients。后者将用户与客户端之间的关系保存为一个用户可以属于多个客户端。
以下为表格结构: users 表格结构(还有更多字段)
用户客户端结构
这是从CSV文件中添加每个用户的脚本基本流程:
您将如何改进它以使其更快?
提前感谢。
附注:如果您想查看完整的函数,可在 pastebin 上找到。
涉及到两个表格,即 users 和 users_clients。后者将用户与客户端之间的关系保存为一个用户可以属于多个客户端。
以下为表格结构: users 表格结构(还有更多字段)
id | int(11) (primary key)
user | varchar(100)
pass | varchar(100)
category | int(11)
date | timestamp
name | varchar(100)
email | varchar(255)
用户索引
SEARCH | user | FULLTEXT
SEARCH | name | FULLTEXT
SEARCH | email | FULLTEXT
用户客户端结构
id_user | int(11)
id_client | int(11)
status | enum('active','inactive')
这是从CSV文件中添加每个用户的脚本基本流程:
Check if the user exists for that client.
SELECT LOWER(user) FROM users u INNER JOIN users_clients uc ON u.id = uc.id_user WHERE u.user = '$user' and uc.id_client = $id_client
If it doesn't exist, add it to the database.
INSERT INTO users ($fields,id_client) VALUES ($values,'$id_operation')
Get the id of the inserted user. I know I could use something like mysql_insert_id here, but what about the race conditions?.
SELECT u.id as id FROM users u WHERE u.user = '$user' and u.id_client = '$id_operation'
Associate the user with the corresponding client.
INSERT INTO users_clients (id_user, id_client) VALUES ('$id_user','$id_client')
您将如何改进它以使其更快?
提前感谢。
附注:如果您想查看完整的函数,可在 pastebin 上找到。