เบื้องหลัง SQL Query ถูกประมวลผลในฐานข้อมูลอย่างไร

เบื้องหลัง SQL Query ถูกประมวลผลในฐานข้อมูลอย่างไร — ภาพประกอบบทความ AiDevThai

SQL เกือบไม่ได้ใช้ชื่อนี้ เพราะโดนบริษัทเครื่องบินฟ้อง — เรื่องนี้ฟังดูเหมือนมุกตลก แต่เป็นเรื่องจริงที่อยู่เบื้องหลังภาษาที่โปรแกรมเมอร์ทั่วโลกใช้งานทุกวัน หลายคนพิมพ์คำสั่ง SELECT เป็นร้อยครั้งต่อวันโดยไม่เคยรู้เลยว่าเบื้องหลังนั้นฐานข้อมูลทำอะไรบ้างกว่าจะได้ผลลัพธ์กลับมาบนหน้าจอ บทความนี้จะพาไปดูตั้งแต่ต้นทางจนจบทาง ว่า Query หนึ่งคำสั่งเดินทางผ่านกลไกอะไรบ้างภายในเครื่องยนต์ของฐานข้อมูลอย่าง PostgreSQL หรือ MySQL TL;DR: เมื่อรัน SQL Query ฐานข้อมูลจะประมวลผลผ่าน 4 ขั้นตอนหลักคือ Parser (ตรวจไวยากรณ์), Query Rewriter (ปรับโครงสร้าง), Query Optimizer (เลือกแผนที่ต้นทุนต่ำสุดโดยพิจารณา Index Scan, Join Algorithm และสถิติข้อมูล) และ Execution Engine (ดึงข้อมูลจริงผ่าน Buffer Pool แล้วส่งผลลัพธ์กลับมา) การเข้าใจกลไกนี้ช่วยให้เขียน Query ที่เร็วขึ้นได้หลายเท่าโดยไม่ต้องเปลี่ยนฮาร์ดแวร์เลย Key Facts ที่คนส่วนใหญ่ไม่รู้ SQL เดิมชื่อ ‘SEQUEL’ คิดค้นโดย Donald Chamberlin … Read more

Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร

Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร — ภาพประกอบบทความ AiDevThai

Git stores your entire project in 41 bytes — ประโยคนี้ฟังดูเหลือเชื่อ แต่มันคือความจริงทางวิศวกรรมที่อยู่เบื้องหลังระบบควบคุมเวอร์ชันที่นักพัฒนาทั่วโลกใช้งานทุกวัน ไม่ว่าโปรเจกต์ของคุณจะมีไฟล์ 10 ไฟล์หรือ 10 ล้านไฟล์ Git ก็สามารถอ้างอิง “สถานะทั้งหมด” ของโปรเจกต์ ณ เวลานั้นได้ด้วยตัวอักษรเพียง 41 ตัว บทความนี้จะพาคุณไปดูว่ากลไกเบื้องหลังนี้ทำงานอย่างไร ตั้งแต่การกด git add จนถึงการ push ขึ้น GitHub TL;DR: Git ไม่ได้เก็บโค้ดทั้งโปรเจกต์ไว้ใน 41 ไบต์จริงๆ แต่ Git ใช้ SHA-1 hash ที่มีความยาว 40 ตัวอักษรฐาน 16 บวกอักขระขึ้นบรรทัดใหม่ 1 ตัว รวมเป็น 41 ไบต์ เพื่อเป็น “ลายนิ้วมือ” อ้างอิงถึงเนื้อหาทั้งหมดของ … Read more

Flask API รับมือ 50,000 คำขอต่อวินาทีได้อย่างไร

Flask API รับมือ 50,000 คำขอต่อวินาทีได้อย่างไร Flask API รับมือ 50,000 คำขอต่อวินาทีได้อย่างไร Flask handles 50,000 requests before you notice lag — ประโยคนี้อาจฟังดูเกินจริงไปบ้างสำหรับมือใหม่ที่เพิ่งเริ่มต้นกับ Python และ Flask แต่เชื่อผมเถอะว่ามันเป็นไปได้ และบทความนี้จะเปิดเผยเคล็ดลับเบื้องหลังว่า Flask API ที่ดูเรียบง่ายของเรานั้นสามารถรองรับโหลดมหาศาลได้อย่างไร โดยเจาะลึกเข้าไปในกลไกการทำงานภายในตั้งแต่ต้นจนจบ การทำความเข้าใจพื้นฐานเหล่านี้จะช่วยให้คุณออกแบบและปรับแต่ง API ให้มีประสิทธิภาพสูงสุดไม่ว่าจะเป็นการสร้างโปรดักต์ใหม่หรือแม้แต่การลอง สร้างรายได้จากการขาย API ของคุณเอง Key Facts ที่คนส่วนใหญ่ไม่รู้ Flask’s routing system uses Werkzeug’s Map class which compiles URL rules into a single regex tree, reducing … Read more

Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร

Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร body { font-family: sans-serif; line-height: 1.6; margin: 0 auto; max-width: 800px; padding: 20px; color: #333; } h2, h3 { color: #2c3e50; margin-top: 30px; } pre { background-color: #f4f4f4; padding: 15px; border-radius: 5px; overflow-x: auto; margin-bottom: 20px; } code { font-family: ‘Courier New’, Courier, monospace; } ul, ol { margin-bottom: 20px; } … Read more

Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร

Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร Git เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์ได้อย่างไร: ไขปริศนา SHA-1 และระบบควบคุมเวอร์ชันที่อยู่เบื้องหลัง Git stores your entire project in 41 bytes… ฟังดูเหลือเชื่อใช่ไหมครับ? ในฐานะนักพัฒนาซอฟต์แวร์และครูสอนโค้ดที่ AiDevThai.com ผมเข้าใจดีว่า Git เป็นเครื่องมือสำคัญที่นักพัฒนาทุกคนต้องรู้จัก แต่มีใครเคยสงสัยไหมว่ามันทำงานยังไงเบื้องลึก? ทำไมเราถึงบอกว่า Git สามารถ “เก็บโค้ดทั้งโปรเจกต์ใน 41 ไบต์” ได้? บทความนี้จะพาทุกคนดำดิ่งไปในโลกของ Git ไขปริศนาของ SHA-1 และโครงสร้างลับที่ทำให้มันเป็นไปได้ รวมถึงกระบวนการตั้งแต่ 'git add' จนถึง 'git push' ที่คุณต้องรู้ เพื่อให้คุณเข้าใจ Git มากกว่าแค่คำสั่งที่ต้องพิมพ์ Key Facts ที่คนส่วนใหญ่ไม่รู้ Git was created by … Read more

Python ทำงานภายในอย่างไร: จากโค้ดสู่ Bytecode

Python ทำงานภายในอย่างไร: จากโค้ดสู่ Bytecode คุณเคยสงสัยไหมว่าเมื่อคุณเขียนโค้ด Python แล้วกดรัน (Run) เกิดอะไรขึ้นเบื้องหลัง? หลายคนมักได้ยินว่า Python เป็นภาษา interpreted language แต่ความจริงซับซ้อนกว่านั้นมาก และรู้หรือไม่ว่า Python executes code 10x slower than C++ นั่นจึงเป็นเหตุผลว่าทำไมการเข้าใจกลไกภายในของ Python จึงสำคัญ ถ้าคุณอยากเขียนโค้ดที่มีประสิทธิภาพ หรือแก้ไขปัญหาบั๊กแปลกๆ ได้อย่างมืออาชีพ บทความนี้จะพาคุณเจาะลึกการทำงานของ Python ตั้งแต่โค้ดของคุณถูกอ่านไปจนถึงการประมวลผลเป็นคำสั่งจริงๆ Key Facts ที่คนส่วนใหญ่ไม่รู้ Python’s name comes from Monty Python’s Flying Circus, not the snake, decided by Guido van Rossum in 1991 CPython compiles … Read more

📺 YouTube📘 Facebook✕