[MySQL] ลองเล่น Temporary (แคช MySQL)
ใส่ไว้เก๋ๆ |
โพสนี้มาเขียนแปะจ้า
สร้างแคชได้โดย คำสั่งประมาณนี้ครับ
CREATE TEMPORARY TABLE cache_table
[( field_name field_type NOT NULL )]
select_statement
ตัวอย่างเช่น
CREATE TEMPORARY TABLE testCacheSELECT * 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 แล้ว เย้!!!!!!!!!
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 แล้ว เย้!!!!!!!!!
CREATE TABLE Syntax
Comments
Post a Comment