ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [SQL] select * ช้ากว่าหรือเร็วกว่าแบบกำหนด field  (อ่าน 2699 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
tamiyalagu
คนรักเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 191



ดูรายละเอียด
« เมื่อ: 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

หรือเปล่าครับ
บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 24 เมษายน 2010, 04:16:22 »

select * from table ช้ากว่า ล้านเปอเซ็น
บันทึกการเข้า

ฟาร์มเฮ้า
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 49
ออฟไลน์ ออฟไลน์

กระทู้: 1,014



ดูรายละเอียด
« ตอบ #2 เมื่อ: 24 เมษายน 2010, 05:05:37 »

select * ช้ากว่าครับ

มี 10 field filed ละ 10 ตัวอักษร ใช้แค่ 2 field

แทนที่จะดึงมาแค่ 20 ตัว ถ้า select * ก็ต้องดึงมาทั้ง 100 ตัว
บันทึกการเข้า
tamiyalagu
คนรักเสียว
*

พลังน้ำใจ: 3
ออฟไลน์ ออฟไลน์

กระทู้: 191



ดูรายละเอียด
« ตอบ #3 เมื่อ: 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 ลดลง เวลาเรียกข้อมูลจะใช้เวลาเท่ากันหรือเปล่าครับ
บันทึกการเข้า
KaPong_Inter
สมุนแก๊งเสียว
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 683



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 24 เมษายน 2010, 10:45:27 »

มาเก็บความรู้  Shocked
บันทึกการเข้า

GillBate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 160
ออฟไลน์ ออฟไลน์

กระทู้: 1,236



ดูรายละเอียด
« ตอบ #5 เมื่อ: 24 เมษายน 2010, 11:07:53 »

 Tongue มันอยู่ที่เราเซท where ครับ ถ้าเกิดเอาหมดทุกแถวทุกคอลัมก็ยังไงก็ได้ครับ
ถ้าจะเลือกเอามา ฟิลที่ใช้ค้นหา(where) เป็น PK จะเร็วสุด ถ้าไม่ใช้ PK ก็ทำเป็น index ครับ
บันทึกการเข้า
SekRanger
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 130
ออฟไลน์ ออฟไลน์

กระทู้: 1,564



ดูรายละเอียด
« ตอบ #6 เมื่อ: 24 เมษายน 2010, 11:20:54 »

ถ้าข้อมูลน้อยๆจะแทบไม่ต่างกันครับ

แต่ผมทำงานอยู่ในบริษัทที่เป็นโกดังสินค้า ดึงข้อมูลทีเป็นพันเป็นหมื่น Row จะต้องพยายามประหยัดทรัพยากรให้มากที่สุด

Table บางอันมี Column ปาเข้าไป 30-40 คอลัมน์ และบางข้อมูลเป็น Descriptive(เช่นชื่อ บริษัท ชื่อสินค้า)ที่ยาวๆทั้งนั้น

ถ้าเราใช้ SELECT * มีหวังระบบล่มแน่ๆครับ เพราะยังไงๆ เวลา DBMS มันทำงานมันก็ต้องเก็บข้อมูลไว้ใน Buffer ก่อนส่งให้เรา

ถ้าเราดึงทั้งหมดเราก็ต้องใช้ Buffer เยอะขึ้น ถ้าดึง 50 คนพร้อมๆกันต่อให้มี Ram สักเป็น Terabyte ก็ไม่พอครับ


ข้อสรุปง่ายๆของผมคือ

SELECT แบบไหนก็ทำงานเร็วครับ แต่ถ้าดึงเฉพาะคอลัมน์จะใช้ทรัพยากรประหยัดมากกว่า ซึ่งส่งผลโดยรวมต่อการทำงานของ Server ครับ
บันทึกการเข้า

Twenty-One
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 335
ออฟไลน์ ออฟไลน์

กระทู้: 11,762



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 24 เมษายน 2010, 11:26:19 »

select * ช้ามากครับ อย่าใช้เด็ดขาดถ้าไม่เอาทุก field
บันทึกการเข้า

# บริการโฮสติ้งขั้นเทพ 24/7 เปิดให้บริการ web hosting มาแล้ว 14 ปี ลูกค้ากว่า 40,000 ราย ให้ความไว้วางใจ
# hosting คุณภาพสูง ดูแลระบบโดย system engineer ประสบการณ์สูง
# host เร็ง แรง ไม่มีล่ม ติดตั้ง cms ฟรี
# vps ราคาถูก 50GB 999 บาท

pugkung
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 2,681



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 24 เมษายน 2010, 12:33:33 »

ช้ากว่าครับ

แต่ผมก็ยังใช้  wanwan014

ปล.ไม่แนะนำให้ใช้นะครับ ผมใช้เพราะว่า รันบน local  Tongue
บันทึกการเข้า

Condothai
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 56
ออฟไลน์ ออฟไลน์

กระทู้: 1,024



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 24 เมษายน 2010, 14:08:40 »

ช้ากว่าครับ แต่ถ้า row คุณไม่เยอะ ไม่แตกต่างหรอกครับ นอกจาะคุณมีเป็นหมื่น row Tongue
บันทึกการเข้า

ponddeja
ก๊วนเสียว
*

พลังน้ำใจ: 18
ออฟไลน์ ออฟไลน์

กระทู้: 246



ดูรายละเอียด
« ตอบ #10 เมื่อ: 24 เมษายน 2010, 14:21:52 »

ตอนเขียนครับเร็ว

แต่ตอนรันช้าครับ 

wanwan004
บันทึกการเข้า
xvlnw.com
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 493
ออฟไลน์ ออฟไลน์

กระทู้: 5,905



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 24 เมษายน 2010, 15:26:36 »

ตอนเขียนครับเร็ว

แต่ตอนรันช้าครับ 

wanwan004

 wanwan019 wanwan019 wanwan019 wanwan019
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์