[MySQL] ลองเล่น Temporary (แคช MySQL)

ใส่ไว้เก๋ๆ

โพสนี้มาเขียนแปะจ้า

สร้างแคชได้โดย คำสั่งประมาณนี้ครับ
CREATE TEMPORARY TABLE cache_table
[( field_name field_type NOT NULL )] 
select_statement

ตัวอย่างเช่น
CREATE TEMPORARY TABLE testCache
SELECT * FROM test

มันสร้าง testCache เป็น Table ใหม่ที่เหมือนกับตัว test ทุกประการ เวลาเราเอาไปใช้งานก็เรียกใช้ได้ปกติเลยครับเช่น

SELECT * FROM testCache

คำถามก็คือ แล้วมันเหมาะจะเอามาใช้กับอะไร(วะ)ครับ?
คำตอบ เท่าทีผมสัมผัสมาก็คือ 
- เหมาะกับตารางที่ใหญ่ๆ เช่น Table ที่มี Field สัก 20-30 Field ขึ้นไป แล้วมี Record หลักแสน ไปจนถึงหลักล้าน 
- จากข้อด้านบนต้องเอามา Join กัน 2 ถึง 3 ตาราง
เท่าที่ลองมา ถือว่าเร็วอยู่นะ (ไม่ได้ทำ Index ด้วยนะเออ)

ตัวอย่าง Join 
CREATE TEMPORARY TABLE testCache
SELECT * FROM test as a, lab as b WHERE a.lab_code = b.lab_code

สร้าง Field หรือเปลี่ยน type มันได้ด้วยนะเออ
ผมเจอปัญหาอย่างนี้ครับ... คือเค้าตั้งค่าให้ฟิลด์ๆ หนึ่ง แทนที่จะเป็น Float ดันใช้เป็น String ซะงั้น ทำให้พอเราจะไป Query มัน มันเขียน Statement ยากขึ้นหลายเท่าตัว แต่เดี๋ยวก่อน!!!! เรามีวิธีแก้ไข ... ก็ไอ่ตรงที่ผมใส่ไปว่า

[( field_name field_type NOT NULL )]

นี่ไง!!!!!!!!!!

สมมุตตามปัญหาที่ผมได้เขียนไว้ด้านบนนะครับ ผมอยากจะเปลี่ยนให้มันเป็น Float ผมสามารถเขียนได้ดังนี้ครับ

CREATE TEMPORARY TABLE testCache
( lab_ldl FLOAT NOT NULL )
SELECT * FROM test

แค่นี้เอง Field ที่ชื่อว่า lab_ldl ของผมก็เปลียน Type จาก String เป็น Float แล้ว เย้!!!!!!!!!

Ref.
CREATE TABLE Syntax

Comments