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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingคำสั่ง sql SELECT COUNT(*) กับ SELECT * FROM ต่างกันยังไงทำไมตารางไม่เท่ากัน
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: คำสั่ง sql SELECT COUNT(*) กับ SELECT * FROM ต่างกันยังไงทำไมตารางไม่เท่ากัน  (อ่าน 3121 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
kcontrol
Newbie
*

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

กระทู้: 56



ดูรายละเอียด
« เมื่อ: 31 สิงหาคม 2020, 19:46:48 »

ใช้ mariadb innodb อ่าครับ

แล้วแบบนี้อันไหนคือข้อมูลที่ถูกต้อง



บันทึกการเข้า
icez
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,879



ดูรายละเอียด
« ตอบ #1 เมื่อ: 31 สิงหาคม 2020, 20:40:07 »

สำหรับเฉพาะตารางที่เป็น innodb ถ้าต้องการตัวเลขเป๊ะๆ ให้เชื่อ select count(*) ครับ ค่าอื่นๆ จะเป็นค่าโดยประมาณเสมอ (แปลว่ามันจะไม่แม่น)

แต่การสั่ง select count(*) แปลว่ามันจะไปนับจริงๆ นะคัรบว่ามีกี่ record ซึ่งถ้าตารางมีหลายแสนหรือหลักล้าน record มันก้จะใช้เวลานานขึ้นตามปริมาณ record ที่มีครับ
บันทึกการเข้า

THZHost SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ
Putter™
หัวหน้าแก๊งเสียว
*

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

กระทู้: 2,103



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 01 กันยายน 2020, 03:47:43 »

สำหรับเฉพาะตารางที่เป็น innodb ถ้าต้องการตัวเลขเป๊ะๆ ให้เชื่อ select count(*) ครับ ค่าอื่นๆ จะเป็นค่าโดยประมาณเสมอ (แปลว่ามันจะไม่แม่น)

แต่การสั่ง select count(*) แปลว่ามันจะไปนับจริงๆ นะคัรบว่ามีกี่ record ซึ่งถ้าตารางมีหลายแสนหรือหลักล้าน record มันก้จะใช้เวลานานขึ้นตามปริมาณ record ที่มีครับ

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

Ruk-Com Hosting (IAAS)
Ruk-Com Cloud (PAAS)
รีวิวโฮสติ่ง Ruk-Com  จากสมาชิก THAISEO

ไม่พอใจยินดีคืนเงินเต็มจำนวนทุกบริการ
kcontrol
Newbie
*

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

กระทู้: 56



ดูรายละเอียด
« ตอบ #3 เมื่อ: 01 กันยายน 2020, 12:06:42 »

ขอบคุณครับ
บันทึกการเข้า
7one011
ก๊วนเสียว
*

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

กระทู้: 232



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 01 กันยายน 2020, 15:06:33 »

สำหรับเฉพาะตารางที่เป็น innodb ถ้าต้องการตัวเลขเป๊ะๆ ให้เชื่อ select count(*) ครับ ค่าอื่นๆ จะเป็นค่าโดยประมาณเสมอ (แปลว่ามันจะไม่แม่น)

แต่การสั่ง select count(*) แปลว่ามันจะไปนับจริงๆ นะคัรบว่ามีกี่ record ซึ่งถ้าตารางมีหลายแสนหรือหลักล้าน record มันก้จะใช้เวลานานขึ้นตามปริมาณ record ที่มีครับ
wanwan017 wanwan017 wanwan017 wanwan017
บันทึกการเข้า

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