เพิ่มความเร็วเว็บไซต์ของคุณด้วย MySQL Query Caching
หนึ่งในวิธีที่ดีที่สุดในการเพิ่มความเร็วให้กับแอปพลิเคชันเว็บของคุณคือการเปิดใช้งานการแคชแบบสอบถามในฐานข้อมูลของคุณซึ่งแคชแบบสอบถาม SQL ที่ใช้กันทั่วไปในหน่วยความจำสำหรับการเข้าถึงได้ทันทีในหน้าถัดไปที่ทำให้คำขอเดียวกัน.
เหตุผลที่วิธีการนี้มีประสิทธิภาพมากคือคุณไม่ต้องทำการเปลี่ยนแปลงใด ๆ กับเว็บแอปพลิเคชันของคุณคุณเพียงแค่ต้องเสียสละหน่วยความจำเล็กน้อย สิ่งนี้จะไม่แก้ไขปัญหาทั้งหมดของคุณ แต่มันไม่สามารถทำร้ายได้แน่นอน.
หมายเหตุ: หากแอปพลิเคชันของคุณอัปเดตตารางบ่อยๆแคชแบบสอบถามจะถูกลบอย่างต่อเนื่องและคุณจะไม่ได้รับประโยชน์มากนักหรือจากสิ่งนี้ นี่เหมาะสำหรับแอปพลิเคชันที่ส่วนใหญ่อ่านกับฐานข้อมูลเช่นบล็อก WordPress สิ่งนี้จะไม่ทำงานหากคุณใช้โฮสติ้งที่ใช้ร่วมกัน.
เปิดใช้งานการแคชกับเซิร์ฟเวอร์ที่ทำงาน
สิ่งแรกที่คุณจะต้องทำก็คือตรวจสอบให้แน่ใจว่าการติดตั้ง MySQL ของคุณมีการแคชการสอบถามอยู่ การกระจายส่วนใหญ่ทำ แต่คุณควรตรวจสอบอยู่ดี.
คุณจะต้องเรียกใช้คำสั่งนี้จากคอนโซล MySQL ของคุณซึ่งจะบอกคุณว่าแคชการสืบค้นมีอยู่หรือไม่.
mysql> แสดงตัวแปรเช่น 'have_query_cache'; + ------------------ + ------- + | Variable_name | ค่า | + ------------------ + ------- + | have_query_cache | ใช่ | +------------------+-------+
อย่าเข้าใจผิดว่าหมายถึงการเปิดใช้งานแคชแบบสอบถามจริง ๆ แล้วเนื่องจากผู้ให้บริการโฮสต์ส่วนใหญ่จะไม่เปิดใช้งานสิ่งนี้ตามค่าเริ่มต้น ผิดปกติการติดตั้ง Ubuntu Feisty ของฉันได้เปิดใช้งาน ...
ต่อไปเราจะต้องตรวจสอบและดูว่าเปิดใช้งานแคชแบบสอบถามอยู่หรือไม่ เราจะต้องตรวจสอบตัวแปรมากกว่าหนึ่งตัวดังนั้นเราอาจทำทุกอย่างพร้อมกันโดยการตรวจสอบแบบสอบถาม% ตัวแปร
mysql> แสดงตัวแปรเช่น 'query%'; + ------------------------------ + --------- + | Variable_name | ค่า | + ------------------------------ + --------- + | query_alloc_block_size | 8192 | | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 8388608 | | query_cache_type | ON | | query_cache_wlock_invalidate | ปิด | | query_prealloc_size | 8192 | +------------------------------+---------+
นี่คือรายการสำคัญในรายการและความหมาย:
- query_cache_size - นี่คือขนาดของแคชเป็นไบต์ การตั้งค่านี้เป็น 0 จะปิดใช้งานการแคชอย่างมีประสิทธิภาพ.
- query_cache_type - ค่านี้จะต้องเป็น ON หรือ 1 เพื่อให้แคชการสืบค้นเปิดใช้งานโดยค่าเริ่มต้น.
- query_cache_limit - นี่เป็นเคียวรีขนาดสูงสุด (เป็นไบต์) ที่จะถูกแคช.
หากค่า query_cache_size ถูกตั้งค่าเป็น 0 หรือคุณเพียงต้องการเปลี่ยนคุณจะต้องเรียกใช้คำสั่งต่อไปนี้โดยคำนึงว่าค่าเป็นไบต์ ตัวอย่างเช่นหากคุณต้องการจัดสรร 8MB ให้กับแคชเราจะใช้ 1024 * 1024 * 8 = 8388608 เป็นค่า.
SET GLOBAL query_cache_size = 8388608;
ในทำนองเดียวกันตัวเลือกอื่น ๆ สามารถตั้งค่าด้วยไวยากรณ์เดียวกัน:
SET GLOBAL query_cache_limit = 1048576;SET GLOBALquery_cache_type
= 1;
ตอนนี้เราจะบอกได้อย่างไรว่ามันใช้งานได้จริง? คุณสามารถใช้คำสั่ง SHOW STATUS เพื่อดึงตัวแปรทั้งหมดที่ขึ้นต้นด้วย“ Qc” เพื่อดูสิ่งที่เกิดขึ้นภายใต้ประทุน.
mysql> แสดงสถานะเหมือน 'Qc%'; + ------------------------- + -------- + | Variable_name | ค่า | + ------------------------- + -------- + | Qcache_free_blocks | 65 | | Qcache_free_memory | 201440 | | Qcache_hits | พ.ศ. 24298 | Qcache_inserts | 2940 | | Qcache_lowmem_prunes | 665 | | Qcache_not_cached | 246 | | Qcache_queries_in_cache | 492 | | Qcache_total_blocks | 1430 | + ------------------------- + -------- + 8 แถวในชุด (0.00 วินาที)
คุณจะสังเกตเห็นในสถิติที่ฉันมีเหลือหน่วยความจำฟรีมากมาย หากเซิร์ฟเวอร์ของคุณแสดงพรุนน้อยมากคุณอาจต้องพิจารณาเพิ่มค่านี้ แต่ฉันจะไม่ใช้หน่วยความจำมากเกินไปในการแคชแบบสอบถามสำหรับเว็บเซิร์ฟเวอร์ ... คุณต้องปล่อยให้หน่วยความจำว่างสำหรับ apache, php, ทับทิมหรือ สิ่งที่คุณกำลังใช้.
เปิดใช้งานในไฟล์กำหนดค่า
หากคุณต้องการให้การเปลี่ยนแปลงเหล่านี้อยู่รอดได้ในการรีบูตหรือรีสตาร์ทเซิร์ฟเวอร์ mysql คุณจะต้องเพิ่มลงในไฟล์ /etc/mysql/my.cnf ของคุณสำหรับ MySQL โปรดทราบว่าอาจอยู่ในตำแหน่งอื่นในการติดตั้งของคุณ.
เปิดไฟล์โดยใช้โปรแกรมแก้ไขข้อความในโหมด sudo หรือรูทแล้วเพิ่มค่าเหล่านี้หากไฟล์นั้นไม่มีอยู่ในไฟล์ หากมีอยู่ให้ยกเลิกการใส่เครื่องหมายข้อคิดเห็น.
query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576
การแคชแบบสอบถามสามารถปรับปรุงความเร็วของแอปพลิเคชันเว็บของคุณได้อย่างมีนัยสำคัญโดยเฉพาะหากแอปพลิเคชันของคุณอ่านเป็นส่วนใหญ่ ตรวจสอบสถานะโดยใช้วิธีการด้านบนและดูว่ามันทำงานอย่างไรเมื่อเวลาผ่านไป.