|
หัวข้อ: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: tamiyalagu ที่ 24 เมษายน 2010, 04:09:13 ไม่ทราบว่า sql มันทำงานยังไง ตามความเขาใจของผมเอง คิดว่าแบบ * น่าจะเร็วกว่า เพราะมันไม่ต้องเสียเวลาไปคัดว่าจะเอา field ไหนบ้าง เจอก็ดึงมาหมดเลย แต่เหมือนเคยเห็นผ่านๆ บางเว็บบอก select * จะช้ากว่าแบบกำหนด field เลยมาถามให้แน่ใจครับ
และก็สงสัยว่าถ้าต้องกำหนด แล้วมันมีเยอะ มันไม่ยิ่งยา่วและยิ่งช้าเหรอ อย่างสมมุติในตารางมี 15 field เราจะใช้ 10 field เขียนแบบนี้ select field-01, field-02, field-03, field-04, field-05, field-06, field-07, field-08, field-09, field-10 from table จะเร็วกว่าแบบ select * from table หรือเปล่าครับ หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: xvlnw.com ที่ 24 เมษายน 2010, 04:16:22 select * from table ช้ากว่า ล้านเปอเซ็น
หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: ฟาร์มเฮ้า ที่ 24 เมษายน 2010, 05:05:37 select * ช้ากว่าครับ
มี 10 field filed ละ 10 ตัวอักษร ใช้แค่ 2 field แทนที่จะดึงมาแค่ 20 ตัว ถ้า select * ก็ต้องดึงมาทั้ง 100 ตัว หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: tamiyalagu ที่ 24 เมษายน 2010, 08:49:59 ขอบคุณครับ
ขึ้นอยู่กับปริมาณข้อมูลของ field นั้นๆด้วยหรือเปล่าครับ คือถ้ามี 15 เอาแค่ 2 ก็คงไม่ใช่ประเด็นอะไร แต่ถ้ามี 15 แต่เอาซัก 13 อันนี้มันน่าคิดว่าควรจะเขียนยังไง สมมุติมี 15 field แต่ใช้ 13 field เหลือ 2 field ที่ไม่ใช้ ถ้าข้อมูล 2 field นั้นไม่เยอะ จะใช้ * ก็ไม่ต่างกันมากหรือเปล่าครับ? แล้วถ้าจำนวน field ลดลง แต่ปริมาณข้อมูลเท่าเดิม แบบนี้จะยังเร็วขึ้นหรือเปล่าครับ เช่น ของเดิมเป็น field1 field2 field3 field4 field5 field6 x aaa bbb ccc ddd eee ของใหม่ เอามายัดรวมกัน field1 field2 x aaa, bbb, ccc, ddd, eee แบบนี้ปริมาณข้อมูลเท่ากัน แต่ field ลดลง เวลาเรียกข้อมูลจะใช้เวลาเท่ากันหรือเปล่าครับ หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: KaPong_Inter ที่ 24 เมษายน 2010, 10:45:27 มาเก็บความรู้ :o
หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: GillBate ที่ 24 เมษายน 2010, 11:07:53 :P มันอยู่ที่เราเซท where ครับ ถ้าเกิดเอาหมดทุกแถวทุกคอลัมก็ยังไงก็ได้ครับ
ถ้าจะเลือกเอามา ฟิลที่ใช้ค้นหา(where) เป็น PK จะเร็วสุด ถ้าไม่ใช้ PK ก็ทำเป็น index ครับ หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: SekRanger ที่ 24 เมษายน 2010, 11:20:54 ถ้าข้อมูลน้อยๆจะแทบไม่ต่างกันครับ
แต่ผมทำงานอยู่ในบริษัทที่เป็นโกดังสินค้า ดึงข้อมูลทีเป็นพันเป็นหมื่น Row จะต้องพยายามประหยัดทรัพยากรให้มากที่สุด Table บางอันมี Column ปาเข้าไป 30-40 คอลัมน์ และบางข้อมูลเป็น Descriptive(เช่นชื่อ บริษัท ชื่อสินค้า)ที่ยาวๆทั้งนั้น ถ้าเราใช้ SELECT * มีหวังระบบล่มแน่ๆครับ เพราะยังไงๆ เวลา DBMS มันทำงานมันก็ต้องเก็บข้อมูลไว้ใน Buffer ก่อนส่งให้เรา ถ้าเราดึงทั้งหมดเราก็ต้องใช้ Buffer เยอะขึ้น ถ้าดึง 50 คนพร้อมๆกันต่อให้มี Ram สักเป็น Terabyte ก็ไม่พอครับ ข้อสรุปง่ายๆของผมคือ SELECT แบบไหนก็ทำงานเร็วครับ แต่ถ้าดึงเฉพาะคอลัมน์จะใช้ทรัพยากรประหยัดมากกว่า ซึ่งส่งผลโดยรวมต่อการทำงานของ Server ครับ หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: Twenty-One ที่ 24 เมษายน 2010, 11:26:19 select * ช้ามากครับ อย่าใช้เด็ดขาดถ้าไม่เอาทุก field
หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: pugkung ที่ 24 เมษายน 2010, 12:33:33 ช้ากว่าครับ
แต่ผมก็ยังใช้ :wanwan014: ปล.ไม่แนะนำให้ใช้นะครับ ผมใช้เพราะว่า รันบน local :P หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: Condothai ที่ 24 เมษายน 2010, 14:08:40 ช้ากว่าครับ แต่ถ้า row คุณไม่เยอะ ไม่แตกต่างหรอกครับ นอกจาะคุณมีเป็นหมื่น row :P
หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: ponddeja ที่ 24 เมษายน 2010, 14:21:52 ตอนเขียนครับเร็ว
แต่ตอนรันช้าครับ :wanwan004: หัวข้อ: Re: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field เริ่มหัวข้อโดย: xvlnw.com ที่ 24 เมษายน 2010, 15:26:36 ตอนเขียนครับเร็ว แต่ตอนรันช้าครับ :wanwan004: :wanwan019: :wanwan019: :wanwan019: :wanwan019: |