คำถามติดแท็ก myisam

25
MyISAM กับ InnoDB [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันกำลังทำงานในโครงการที่เกี่ยวข้องกับการเขียนฐานข้อมูลจำนวนมากฉันจะบอกว่า ( แทรก 70% และอ่าน 30% ) อัตราส่วนนี้จะรวมการอัปเดตซึ่งฉันคิดว่าเป็นหนึ่งการอ่านและการเขียนหนึ่งครั้ง การอ่านอาจสกปรก (เช่นฉันไม่ต้องการข้อมูลที่ถูกต้อง 100% ณ เวลาที่อ่าน) งานที่มีปัญหาจะทำธุรกรรมฐานข้อมูลมากกว่า 1 ล้านรายการต่อชั่วโมง ฉันได้อ่านสิ่งต่าง ๆ บนเว็บเกี่ยวกับความแตกต่างระหว่าง MyISAM และ InnoDB และ MyISAM ดูเหมือนจะเป็นทางเลือกที่ชัดเจนสำหรับฉันสำหรับฐานข้อมูล / ตารางเฉพาะที่ฉันจะใช้สำหรับงานนี้ จากสิ่งที่ฉันอ่านหนังสือ InnoDB นั้นดีถ้าต้องการธุรกรรมเนื่องจากรองรับการล็อคระดับแถว ใครบ้างมีประสบการณ์กับโหลดประเภทนี้ (หรือสูงกว่า) หรือไม่? MyISAM เป็นวิธีที่จะไปไหม?

13
ฉันจะตรวจสอบประเภทเอ็นจิน MySQL สำหรับตารางที่ระบุได้อย่างไร
ฐานข้อมูล MySQL ของฉันมีหลายตารางโดยใช้เครื่องมือจัดเก็บข้อมูลที่แตกต่างกัน (โดยเฉพาะ myisam และ innodb) ฉันจะทราบได้อย่างไรว่าตารางใดบ้างที่ใช้เอ็นจิน
391 mysql  innodb  myisam 

8
วิธีการสร้างคีย์หลักคอมโพสิตอย่างเหมาะสม - MYSQL
นี่คือตัวอย่างที่ชัดเจนของการตั้งค่าที่เข้มข้นที่ฉันกำลังทำงานด้วย table_1และtable_2ทั้งคู่มีคีย์หลักตัวแทนเพิ่มขึ้นอัตโนมัติเป็น ID infoเป็นตารางที่มีข้อมูลเกี่ยวกับทั้งสองและtable_1table_2 table_1 (id, field) table_2 (id, field, field) info ( ???, field) ฉันพยายามที่จะตัดสินใจว่าผมควรจะทำให้คีย์หลักของinfoคอมโพสิตของรหัสจากและtable_1 table_2ถ้าฉันจะทำสิ่งนี้สิ่งใดที่เหมาะสมที่สุด? (ในตัวอย่างนี้ฉันรวม ID 11209 กับ ID 437) INT(9)11209437 (ฉันจินตนาการได้ว่าทำไมสิ่งนี้ถึงไม่ดี) VARCHAR (10) 11209-437 DECIMAL (10,4)11209.437 หรืออย่างอื่น? นี่จะเป็นการดีถ้าใช้นี่เป็นคีย์หลักในฐานข้อมูล MySQL MYISAM?

14
มีความแตกต่างของประสิทธิภาพจริงระหว่างคีย์หลักของ INT และ VARCHAR หรือไม่
มีความแตกต่างของประสิทธิภาพที่วัดได้ระหว่างการใช้ INT กับ VARCHAR เป็นคีย์หลักใน MySQL หรือไม่ ฉันต้องการใช้ VARCHAR เป็นคีย์หลักสำหรับรายการอ้างอิง (คิดว่าสหรัฐฯรหัสประเทศ) และผู้ร่วมงานจะไม่ขยับเขยื่อนไปที่ INT AUTO_INCREMENT เป็นคีย์หลักสำหรับทุกตาราง ข้อโต้แย้งของฉันตามรายละเอียดที่นี่คือความแตกต่างของประสิทธิภาพระหว่าง INT และ VARCHAR นั้นเล็กน้อยเนื่องจากการอ้างอิงคีย์ต่างประเทศทุก INT จะต้องมีการเข้าร่วมเพื่อให้เข้าใจถึงการอ้างอิงคีย์ VARCHAR จะนำเสนอข้อมูลโดยตรง ดังนั้นไม่มีใครมีประสบการณ์กับกรณีการใช้งานเฉพาะนี้และความกังวลเกี่ยวกับประสิทธิภาพที่เกี่ยวข้องหรือไม่


9
จะทดสอบคำสั่ง SQL Update ก่อนรันได้อย่างไร
ในบางกรณีการเรียกใช้คำสั่ง UPDATE ในการใช้งานจริงสามารถช่วยประหยัดวันได้ อย่างไรก็ตามการอัปเดต borked อาจแย่กว่าปัญหาเริ่มต้น ขาดการใช้ฐานข้อมูลทดสอบมีตัวเลือกอะไรบ้างที่จะบอกว่าคำสั่งอัพเดตจะทำอะไรก่อนเรียกใช้

3
ฉันจะทราบได้อย่างไรว่าตาราง mysql ใช้ myISAM หรือ InnoDB Engine
ใน MySQL ไม่มีวิธีระบุเครื่องมือจัดเก็บข้อมูลสำหรับฐานข้อมูลเฉพาะสำหรับตารางเดียวเท่านั้น อย่างไรก็ตามคุณสามารถระบุเครื่องมือจัดเก็บข้อมูลที่จะใช้ในช่วงหนึ่งเซสชันด้วย: SET storage_engine=InnoDB; ดังนั้นคุณไม่จำเป็นต้องระบุสำหรับแต่ละตาราง ฉันจะยืนยันได้อย่างไรว่าตารางทั้งหมดใช้ InnoDB จริงหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.