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

InnoDB เป็นเครื่องมือจัดเก็บข้อมูลธุรกรรมที่สอดคล้องกับ ACID สำหรับ MySQL ที่ใช้ MultiVersion Concurrency Control (MVCC) เป็นเครื่องมือจัดเก็บข้อมูลเริ่มต้นสำหรับ MySQL ตั้งแต่เวอร์ชัน 5.5.5

30
ฉันจะเปลี่ยนชื่อฐานข้อมูล MySQL อย่างรวดเร็ว (เปลี่ยนชื่อสคีมา) ได้อย่างไร
คู่มือ MySQL ที่MySQLครอบคลุมสิ่งนี้ ฉันมักจะถ่ายโอนฐานข้อมูลและนำเข้าใหม่ด้วยชื่อใหม่ นี่ไม่ใช่ตัวเลือกสำหรับฐานข้อมูลขนาดใหญ่มาก เห็นได้ชัดว่าไม่สิ่งที่ไม่ดีที่มีอยู่เฉพาะในกำมือของรุ่นและเป็นความคิดที่ไม่ดีโดยรวมRENAME {DATABASE | SCHEMA} db_name TO new_db_name; ความต้องการนี้จะทำงานร่วมกับInnoDBซึ่งร้านค้าสิ่งที่แตกต่างกันมากกว่าMyISAM
959 mysql  database  innodb  rename 

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

4
TINYTEXT, TEXT, MEDIUMTEXT และ LONGTEXT ขนาดการจัดเก็บสูงสุด
ตามเอกสารของ MySQLมี TEXT สี่ประเภท: TINYTEXT ข้อความ MEDIUMTEXT LONGTEXT ความยาวสูงสุดที่ฉันสามารถจัดเก็บในคอลัมน์ของแต่ละประเภทข้อมูลคืออะไรคือการเข้ารหัสอักขระ UTF-8
796 mysql  innodb 

11
ฉันจะดูกุญแจต่างประเทศทั้งหมดในตารางหรือคอลัมน์ได้อย่างไร
ใน MySQL ฉันจะรับรายการข้อ จำกัด คีย์ต่างประเทศทั้งหมดที่ชี้ไปยังตารางที่ระบุได้อย่างไร คอลัมน์ใดคอลัมน์หนึ่ง นี่คือสิ่งเดียวกันกับคำถาม Oracle นี้แต่สำหรับ MySQL

8
วิธีย่อ / ลบไฟล์ ibdata1 ใน MySQL
ฉันใช้ MySQL ใน localhost เป็น "เครื่องมือสืบค้น" สำหรับการแสดงสถิติใน R นั่นคือทุกครั้งที่ฉันเรียกใช้สคริปต์ R ฉันสร้างฐานข้อมูลใหม่ (A) สร้างตารางใหม่ (B) นำเข้าข้อมูลลงใน B ส่งคำค้นหาเพื่อรับสิ่งที่ฉันต้องการจากนั้นฉันปล่อย B และวาง A มันใช้งานได้ดีสำหรับฉัน แต่ฉันรู้ว่าขนาดไฟล์ ibdata เพิ่มขึ้นอย่างรวดเร็วฉันไม่ได้เก็บอะไรไว้ใน MySQL แต่ไฟล์ ibdata1 มีขนาดเกิน 100 MB แล้ว ฉันกำลังใช้การตั้งค่า MySQL เริ่มต้นมากขึ้นหรือน้อยลงสำหรับการตั้งค่ามีวิธีที่ฉันสามารถย่อ / ลบไฟล์ ibdata1 โดยอัตโนมัติหลังจากระยะเวลาที่กำหนดหรือไม่
561 mysql  database  innodb 


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

11
วิธีการแก้จุดบกพร่องล็อคเกินเวลารอล็อคบน MySQL?
ในบันทึกข้อผิดพลาดการผลิตของฉันฉันเห็นเป็นครั้งคราว: SQLSTATE [HY000]: ข้อผิดพลาดทั่วไป: เกินกำหนดเวลารอการล็อค 1205; ลองรีสตาร์ทธุรกรรม ฉันรู้ว่าแบบสอบถามใดพยายามเข้าถึงฐานข้อมูลในขณะนั้น แต่มีวิธีค้นหาว่าแบบสอบถามใดมีการล็อกในช่วงเวลาที่แม่นยำหรือไม่

26
วิธีการแปลงตารางทั้งหมดจาก MyISAM เป็น InnoDB?
ฉันรู้ว่าฉันสามารถออกตารางแก้ไขเป็นรายบุคคลเพื่อเปลี่ยนที่จัดเก็บตารางจาก MyISAM เป็น InnoDB ฉันสงสัยว่ามีวิธีที่จะเปลี่ยนพวกเขาทั้งหมดเป็น InnoDB อย่างรวดเร็วหรือไม่?
264 mysql  sql  innodb 

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

3
ข้อ จำกัด ที่สำคัญต่างประเทศ MySQL ลบน้ำตก
ฉันต้องการใช้กุญแจต่างประเทศเพื่อรักษาความสมบูรณ์และหลีกเลี่ยงเด็กกำพร้า (ฉันใช้ innoDB แล้ว) ฉันจะสร้างสถานะ SQL ที่ลบบนแบบเรียงซ้อนได้อย่างไร หากฉันลบหมวดหมู่ฉันจะแน่ใจได้อย่างไรว่าจะไม่ลบหมวดหมู่ที่เกี่ยวข้องกับหมวดหมู่อื่น ตารางเดือย "categories_products" สร้างความสัมพันธ์แบบกลุ่มต่อกลุ่มระหว่างสองตารางอื่น ๆ categories - id (INT) - name (VARCHAR 255) products - id - name - price categories_products - categories_id - products_id

7
MySQL InnoDB ไม่ปล่อยพื้นที่ดิสก์หลังจากลบแถวข้อมูลออกจากตาราง
ฉันมีตาราง MySQL หนึ่งตารางที่ใช้เอ็นจิ้นการจัดเก็บ InnoDB มันมีแถวข้อมูลประมาณ 2M เมื่อฉันลบแถวข้อมูลออกจากตารางมันจะไม่ปล่อยพื้นที่ดิสก์ที่จัดสรร ขนาดของไฟล์ ibdata1 ไม่ลดลงหลังจากรันoptimize tableคำสั่ง มีวิธีการเรียกคืนพื้นที่ดิสก์จาก MySQL หรือไม่ ฉันอยู่ในสถานการณ์ที่ไม่ดี แอปพลิเคชั่นนี้ทำงานในสถานที่ต่างกันประมาณ 50 แห่งและขณะนี้ปัญหาเรื่องพื้นที่ดิสก์เหลือน้อยปรากฏขึ้นเกือบทั้งหมด
140 mysql  innodb  delete-row 

2
Howto: ทำความสะอาดเอ็นจินการจัดเก็บ mysql InnoDB หรือไม่
เป็นไปได้หรือไม่ที่จะทำความสะอาดเอ็นจินการจัดเก็บ mysql innodb จึงไม่ได้จัดเก็บข้อมูลจากตารางที่ถูกลบ หรือฉันต้องสร้างฐานข้อมูลใหม่ทุกครั้ง?
134 mysql  innodb 


22
1114 (HY000): โต๊ะเต็ม
ฉันกำลังพยายามเพิ่มแถวในInnoDBตารางด้วยแบบสอบถามง่ายๆ: INSERT INTO zip_codes (zip_code, city) VALUES ('90210', 'Beverly Hills'); แต่เมื่อฉันลองใช้แบบสอบถามนี้ฉันจะได้รับสิ่งต่อไปนี้: ข้อผิดพลาด 1114 (HY000): โต๊ะzip_codesเต็ม กำลังทำ SELECT COUNT(*) FROM zip_codes ให้ฉัน 188,959 แถวซึ่งดูเหมือนจะไม่มากเกินไปเพราะฉันมีตารางอื่นที่มี 810,635 แถวในฐานข้อมูลเดียวกันนั้น ฉันค่อนข้างไม่มีประสบการณ์กับInnoDB engineปัญหานี้และไม่เคยประสบปัญหานี้MyISAMมาก่อน อะไรคือปัญหาที่อาจเกิดขึ้นที่นี่? แก้ไข: สิ่งนี้จะเกิดขึ้นเมื่อเพิ่มแถวลงในzip_codesตารางเท่านั้น
114 mysql  innodb 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.