Kết nối

Thử nghiệm tốc độ kết nối tới server MySQL của 2 ngôn ngữ PHP và Python

79 lượt xem 
 Cập nhật lần cuối: 26/04/2019 lúc 17:10:58

Python và PHP là hai trong số các ngôn ngữ lập trình bậc cao phổ biến nhất trên thế giới. PHP thường được các lập trình viên sử dụng để phát triển ứng dụng Web, trong khi đó Python lại được ưa chuộng dùng để xử lý và phân tích dữ liệu do có tính năng động, sẵn có và cấu trúc mã đơn giản. Vì vậy, không có gì ngạc nhiên sẽ có rất nhiều so sánh giữa Python và PHP để đánh giá xem ngôn ngữ nào tốt hơn. Nội dung bài viết này chỉ bàn về tốc độ kết nối tới server MySQL của hai ngôn ngữ PHP và Python.

Thử nghiệm này sử dụng một laptop Core i7-7500 U, tốc độ 2.7 GHz được cài server MySQL, PHP 7.0 (kèm theo gói XAMPP) và Python 3.7.3. Tiếp đến, tạo 1 bảng tên là “table01” chứa với 2700 dòng (record) trong database “dammio”.

Đoạn code kết nối tới server MySQL thực hiện các thao tác đơn giản: kết nối database, đọc dữ liệu bảng “table01”, trả về kết quả, đóng database. Mỗi lần kết nối được tính thời gian và sẽ có 100 lần kết nối để tính thời gian trung bình.

Đoạn mã PHP

Tạo 1 tập tin tên là test.php với nội dung như sau.

<?php 
$sum_time = 0;
for($i=1; $i<=1000; $i++)
{
	$time_pre = microtime(true);
	
	$conn = new mysqli("localhost", "root", "", "dammio");
	$sql = "SELECT * FROM table01";
	$result = $conn->query($sql);
	$conn->close();
	
	$time_post = microtime(true);
	$exec_time = $time_post - $time_pre;
	$sum_time += $exec_time;
	echo ("Lần thứ " . $i . ": " . $exec_time . "<br/>");
}

echo "Thời gian trung bình: ". $sum_time/1000;
?>

Đoạn mã Python

Đoạn mã kết nối tới server MySQL bằng Python như sau.

import mysql.connector
import time

sum_time = 0;

for x in range(1,1001):
    start = time.time()

    mydb = mysql.connector.connect(
      host="localhost",
      user="root",
      passwd="", database="dammio"
    )

    mycursor = mydb.cursor()
    mycursor.execute("SELECT * FROM table01")
    myresult = mycursor.fetchall()
    mycursor.close()
    end = time.time()

    print("Lần thứ " + str(x) + ": " + str(end-start))
    sum_time += end-start

print("Thời gian trung bình: ",  sum_time/1000)

Kết quả

Các đoạn code thực hiện 1000 lần kết nối tới database và lấy kết quả trung bình. Tuy nhiên để chính xác hơn, chúng ta sẽ thực hiện kết quả trung bình của 100, 1000 và 10000 lần kết nối.

Số lần thử nghiệm 100 1000 10000
PHP (giây) 0.0288 0.0291 0.0297
Python (giây) 0.0318 0.0262 0.0234

Nhìn chung, kết quả không chênh lệch nhau bao nhiêu. Chúng tôi nhận thấy số lần thử nghiệm dưới 100 thì kết quả có nhiều sai lệch, tuy nhiên trên 100 thì kết quả dần ổn định. Với 10000 lần thử nghiệm thì Python nhỉnh hơn 1 chút so với PHP về thời gian kết nối, 0.0234s so với 0.0297s. Thử nghiệm có thể chưa chính xác hoàn toàn vì còn có nhiều tác động các yếu tố khách quan khác, nếu bạn có góp ý xin vui lòng để lại bình luận ở dưới.

Bình luận Facebook

Để lại bình luận

avatar
1000
  Theo dõi  
Thông báo của