คำสั่ง sql SELECT COUNT(*) กับ SELECT * FROM ต่างกันยังไงทำไมตารางไม่เท่ากัน

เริ่มโดย kcontrol, 31 สิงหาคม 2020, 19:46:48

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

kcontrol

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

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




icez

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

แต่การสั่ง select count(*) แปลว่ามันจะไปนับจริงๆ นะคัรบว่ามีกี่ record ซึ่งถ้าตารางมีหลายแสนหรือหลักล้าน record มันก้จะใช้เวลานานขึ้นตามปริมาณ record ที่มีครับ
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

Putter™

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

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

:wanwan017: :wanwan017:
[direct=https://hostings.ruk-com.in.th]Ruk-Com Hosting (IAAS)[/direct]
[direct=https://ruk-com.cloud]Ruk-Com Cloud (PAAS)[/direct]
รีวิวโฮสติ่ง Ruk-Com  จากสมาชิก THAISEO

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


7one011

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

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