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

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

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingmysql - update หรือ delete เขียนใหม่เร็วกว่ากัน
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: mysql - update หรือ delete เขียนใหม่เร็วกว่ากัน  (อ่าน 732 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
kcontrol
Newbie
*

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

กระทู้: 40



ดูรายละเอียด
« เมื่อ: 06 มกราคม 2019, 11:12:18 »

ตามหัวข้อเลยครับ mysql - update หรือ delete เขียนใหม่เร็วกว่ากัน

เพราะ update มัน lock database ด้วยเวลาทำงานถ้า delete มัน lock ไหมหรอครับ แล้วมันจะทำให้เร็วกว่าไหม
บันทึกการเข้า
nscyber
Verified Seller
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,096



ดูรายละเอียด
« ตอบ #1 เมื่อ: 06 มกราคม 2019, 11:44:13 »

lock database นี่คือแบบไหนหรอครับ ต้องการเอาไปใช้กับงานแบบไหน
แต่ถ้าถามถึงงานในความเป็นจริงอันนี้ตอบยากครับว่าใช้ update หรือ insert ใหม่เลยดีกว่ากัน
แต่โดยปกติแล้วไม่ค่อยมีคนเขาทำการลบแล้วสร้างใหม่ กันการอัพเดทจะง่ายกว่า เพราะงานบางงานมันจะกระทบไปหลายส่วน
ถ้าลบแล้วสร้างใหม่ คนที่มาพัฒนาต่อเราเขาคงด่าเราตาย แต่ถ้าต้องการความเร็วระดับ เร็วโครต ๆ อันนี้อาจจะต้องปรับแก้ที่ server ด้วยหรือเปลี่ยนไปใช้ตัวอื่นจะง่ายกว่าครับ
แต่สำหรับผมมันก็เร็วมากแล้วนะ ถ้าอยากรับทรานแซคชันสูง ๆ อีกก็ลองเล่น sql server ดูครับ แต่สำหรับผมถ้างานระดับกลางผมชอบ mysql เพราะมัน lock row ได้รู้สึก happy มากกว่า
บันทึกการเข้า

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

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

กระทู้: 1,912



ดูรายละเอียด
« ตอบ #2 เมื่อ: 06 มกราคม 2019, 11:50:50 »

delete น่าจะเร็วกว่า Huh?
บันทึกการเข้า



|||| โฮสต์ไทย ถูก & ดี เริ่มต้นที่ 277฿  คลิก

|||| รับเครดิต digitalocean 100$  คลิก

|||| สร้างรายได้กับ affiliate ไทย  คลิก
kcontrol
Newbie
*

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

กระทู้: 40



ดูรายละเอียด
« ตอบ #3 เมื่อ: 06 มกราคม 2019, 15:56:16 »

lock database นี่คือแบบไหนหรอครับ ต้องการเอาไปใช้กับงานแบบไหน
แต่ถ้าถามถึงงานในความเป็นจริงอันนี้ตอบยากครับว่าใช้ update หรือ insert ใหม่เลยดีกว่ากัน
แต่โดยปกติแล้วไม่ค่อยมีคนเขาทำการลบแล้วสร้างใหม่ กันการอัพเดทจะง่ายกว่า เพราะงานบางงานมันจะกระทบไปหลายส่วน
ถ้าลบแล้วสร้างใหม่ คนที่มาพัฒนาต่อเราเขาคงด่าเราตาย แต่ถ้าต้องการความเร็วระดับ เร็วโครต ๆ อันนี้อาจจะต้องปรับแก้ที่ server ด้วยหรือเปลี่ยนไปใช้ตัวอื่นจะง่ายกว่าครับ
แต่สำหรับผมมันก็เร็วมากแล้วนะ ถ้าอยากรับทรานแซคชันสูง ๆ อีกก็ลองเล่น sql server ดูครับ แต่สำหรับผมถ้างานระดับกลางผมชอบ mysql เพราะมัน lock row ได้รู้สึก happy มากกว่า


ตอนนี้ใช้ mysql มันประมวลผล ประมาณ 550 ครั้งต่อวินาที คิดเป็น update 27 % มันทำงานได้หน่วงแบบรู้สึกได้แต่ไม่ถึง 1 วินาที อยากให้มันไม่หน่วงแบบนี้เพื่อประสบการณ์ที่ดีของผู้ใช้งาน

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

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

กระทู้: 2,692



ดูรายละเอียด
« ตอบ #4 เมื่อ: 06 มกราคม 2019, 17:25:58 »

ปรับตารางไปใช้ innodb มันจะทำ row level lock ได้ครับ ไม่ได้ lock ทั้งตาราง
+ ถ้าเงื่อนไข where ตอน update ตรงกับ primary / unique key ยังไงก็ไม่กระทบการใช้งานอื่นๆ แน่นอนครับ

delete/insert ช้ากว่าแน่ๆ ครับ เพราะเวลาส่วนใหญ่ของการทำ query คือการ parse query ไม่ใช่การทำจริงๆ
บันทึกการเข้า

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

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

กระทู้: 65



ดูรายละเอียด
« ตอบ #5 เมื่อ: 06 มกราคม 2019, 21:37:57 »

 wanwan003 delete insert ช้ากว่า ครับ เพราะมันต้อง อับเดท device (เช่น ฮาร์ดดิสก์)  ถึงสองครั้ง 2  ครั้ง
ครั้ง1 delete
ครั้งที 2   insert เขียน
update เขียนทับครั้งเดียว จบเลยครับ

ถ้า เขียนอ่านเยอะพร้อมๆกัน แนะนำ innodb นะครับ แคชเขาดีจริงๆ

MyISAM เหมาะ สำหรับ read only มากกว่าครับ
« แก้ไขครั้งสุดท้าย: 07 มกราคม 2019, 12:26:08 โดย Suwat1310 » บันทึกการเข้า

วางมือจากวงการแล้วครับ
kcontrol
Newbie
*

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

กระทู้: 40



ดูรายละเอียด
« ตอบ #6 เมื่อ: 07 มกราคม 2019, 10:54:33 »

ขอบคุณครับ เดี๋ยวไปลองศึกษาตั้งค่า innodb ดูครับ
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์