https://kb.pathosting.co.th/index.php?title=MySQL_index_column&feed=atom&action=history
MySQL index column - Revision history
2024-03-29T06:55:28Z
Revision history for this page on the wiki
MediaWiki 1.33.0
https://kb.pathosting.co.th/index.php?title=MySQL_index_column&diff=595&oldid=prev
Admin: q
2016-01-30T12:31:15Z
<p>q</p>
<p><b>New page</b></p><div>[[Category:Database]][[Category:Tips]]<br />
===บทนำ===<br />
*สำหรับผู้ที่พัฒนาเว็บไซต์ด้วยตัวเอง และมีการใช้ฐานข้อมูลด้วย สิ่งสำคัญอย่างหนึ่งที่คุณรู้จัก ก็คือการทำ '''Index''' ให้กับ '''Column''' ในตารางครับ. <br />
*ประโยชน์ของการทำ Index ก็คือจะช่วยให้ MySQL สามารถ query ข้อมูลได้เร็วขึ้นครับ ซึ่งเร็วขึ้นเป็น 100 เท่าเลยทีเดียวนะครับ.<br />
*ถ้าเว็บไซต์ของคุณคนเข้าไม่เยอะ คุณจะไม่เห็นความแตกต่างเท่าไหร่ เพราะว่าตารางที่ไม่ Index อาจจะใช้เวลา Query ประมาณ 1 วินาที ในขณะที่ตารางที่ถูก Index จะใช้เวลาประมาณ 0.001 - 0.01 วินาทีครับ ซึ่งความแตกต่างตรงนี้ คนเข้าเว็บไซต์อาจจะไม่ได้รู้สึกอะไรครับ. แต่ถ้าเว็บไซต์ของคุณต้องรอรับปริมาณคนเข้ามหาศาล ความแตกต่างตรงนี้จะมีผลมากครับ เพราะถ้าใช้เวลา Query นาน ตัวเซิร์ฟเวอร์ก็จะทำงานไม่ทันกับจำนวน Request ที่เข้ามาครับ.<br />
*แล้วต้อง Index column ไหนบ้าง? ... แน่นอนว่า คุณไม่ควร Index ทุกๆ Column ครับ เพราะถ้า Index เยอะ เวลาที่ Insert ข้อมูลลงตาราง ก็จะทำงานนานขึ้นครับ เพราะว่ามันต้องเสียเวลาในการ Index แต่ละ Column ด้วย. &nbsp; ดังนั้นที่ดีที่สุด คือ คุณจะต้องเลือก Index เฉพาะ column ที่คุณจะต้องใช้เป็นเงื่อนไขการ Where ใน SQL ครับ. &nbsp; แต่ก็ไม่จำเป็นว่าอะไรที่ใช้ Where ก็ต้อง Index ให้หมดนะครับ เพราะสมมติว่า เรามี SQL อันนึง ที่จะรันแค่วันละ 1 ครั้ง เราก็ไม่จำเป็นต้อง Index column ที่อยู่ใน SQL ดังกล่าวก็ได้ครับ เพราะว่ามันทำงานแค่วันละครั้งเอง ไม่คุ้มกับ Overhead ที่ต้องเสียไปกับทุกการ Insert ตลอดทั้งวัน.<br />
*สำหรับ Column ที่เป็น <b style="color:red;">Primary Key</b> ไม่จำเป็นต้อง Index นะครับ &nbsp; เพราะว่า Primary Key นั้นจะถูก Indexโดยอัตโนมัติอยู่แล้วครับ<br />
<br />
===วิธีการทำ Index===<br />
ตรงคู่มือนี้จะอธิบายเป็นขั้นตอนการทำ Index ผ่าน phpMyAdmin นะครับ<br />
# ขั้นแรกก็ล็อคอินเข้า phpMyAdmin แล้วไปที่ ฐานข้อมูล ของคุณเลยครับ<br />
# ไปที่หน้าโครงสร้าง (Structure) ของตารางที่ต้องการจะแก้ไข<br />
# ในหน้า โครงสร้าง (Structure) มันจะแสดงแต่ละคอลัมน์ในตาราง ให้ดูที่ด้านขวามือมันจะมีลิงก์ที่เขียนว่า "'''ดัชนี (Index)'''" ดังภาพ ( *** ถ้ามองไม่เห็น แสดงว่าจออาจจะแคบไป แล้ว phpMyAdmin มันเลยยุบลิงก์เหล่านั้นเป็นเมนูดรอปดาวน์ ให้เอาเมาส์ไป hover ก็จะเจอลิงก์ Index ครับ)<br><br>{{fullurl:Staff/img/st/2016-01-30_56acac4f05371.jpg}}<br><br />
# หาบรรทัดของ Column ที่ต้องการจะทำอินเด็ก แล้วก็คลิกตรงคำว่า Index ในบรรทัดนั้นได้เลยครับ (ถ้าเป็นเมนูไทย จะเป็นคำว่า ดัชนี )</div>
Admin