Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ฉันจะหน่วงคอลัมน์ใน MySQL ได้อย่างไร


หากต้องการหน่วงคอลัมน์ใน MySQL ขั้นแรกให้เราสร้างตาราง แบบสอบถามเพื่อสร้างตารางมีดังนี้ −

mysql> สร้างตาราง LagDemo -> ( -> UserId int, -> UserValue int -> ); ตกลง ตกลง 0 แถวได้รับผลกระทบ (1.74 วินาที)

ตัวอย่าง

แทรกบางระเบียนในตารางโดยใช้คำสั่งแทรก แบบสอบถามมีดังนี้ −

mysql> แทรกลงในค่า LagDemo (12,158); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.61 วินาที) mysql> แทรกลงในค่า LagDemo (18,756); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.21 วินาที) mysql> แทรกลงในค่า LagDemo ( 15,346); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.25 วินาที) mysql> แทรกลงในค่า LagDemo (87,646); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.14 วินาที) mysql> แทรกลงในค่า LagDemo (27,334); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ ( 0.11 วินาที) mysql> แทรกลงในค่า LagDemo (90,968) แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.08 วินาที) mysql> แทรกลงในค่า LagDemo (84,378); แบบสอบถามตกลง 1 แถวได้รับผลกระทบ (0.10 วินาที) mysql> แทรกลงในค่า LagDemo ( 85,546);แบบสอบถามตกลง ได้รับผลกระทบ 1 แถว (0.56 วินาที)

แสดงระเบียนทั้งหมดจากตารางโดยใช้คำสั่ง select แบบสอบถามมีดังนี้ −

mysql> เลือก *จาก LagDemo;

ผลลัพธ์

<ก่อนหน้า>+---------+-----------+| รหัสผู้ใช้ | UserValue |+---------+-----------+| 12 | 158 || 18 | 756 || 15 | 346 || 87 | 646 || 27 | 334 || 90 | 968 || 84 | 378 || 85 | 546 |+-------+-----------+8 แถวในชุด (0.00 วินาที)

นี่คือข้อความค้นหาที่จะหน่วงเวลาคอลัมน์ใน MySQL -

mysql> SET @f :=0;Query OK, 0 แถวได้รับผลกระทบ (0.00 วินาที)mysql> SET @s:=2;Query OK, 0 แถวที่ได้รับผลกระทบ (0.00 วินาที)mysql> SELECT l1.UserId, l1. UserValue , l1.UserValue / l2.UserValue AS 'LAG'-> FROM-> (SELECT if(@f, @f:=@f+1, @f:=1) เป็น RowNumber, UserId, UserValue FROM LagDemo) AS l1-> LEFT JOIN-> (เลือก if(@s, @s:=@s+1, @s:=1) เป็น RowNumber, UserId, UserValue FROM LagDemo) AS l2-> ON l1.RowNumber =l2.RowNumber;

ผลลัพธ์

<ก่อนหน้า>+---------+-----------+-------+| รหัสผู้ใช้ | UserValue | LAG |+---------+-----------+-------+| 12 | 158 | NULL || 18 | 756 | NULL || 15 | 346 | 2.1899 || 87 | 646 | 0.8545 || 27 | 334 | 0.9653 || 90 | 968 | 1.4985 || 84 | 378 | 1.1317 || 85 | 546 | 0.5640 |+---------+-----------+-------+8 แถวในชุด (0.00 วินาที)