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

InnoDB: เครื่องมือจัดเก็บ ACID ที่สอดคล้องกับ MySQL

10
เรียกคืนตารางจากไฟล์. frm และ. ibd หรือไม่
ก่อนหน้านี้ฉันได้บันทึกสำเนาของไดเรกทอรี / var / lib / mysql / ddms ("ddms" เป็นชื่อสคีมา) ตอนนี้ฉันติดตั้ง MySQL ใหม่บน Ubuntu 10.04.3 LTS ที่เพิ่งติดตั้งใหม่โดยใช้งานapt-get install mysql-serverฉันเชื่อว่าเวอร์ชัน 5.1 ได้รับการติดตั้งแล้ว หลังจากที่ฉันคัดลอกไดเรกทอรี ddms ภายใต้ / var / lib / mysql บางส่วนของตารางทำงานได้ดีเหล่านี้เป็นตารางที่มีชุดของไฟล์สามไฟล์ที่เกี่ยวข้อง: ไฟล์. frm, ไฟล์. MYM และไฟล์. MYI อย่างไรก็ตามมีสองตารางที่มีชุดไฟล์ต่างกัน: ไฟล์. frm และไฟล์. ibd สองตารางนี้ไม่แสดงในรายการตารางใน phpMyAdmin เมื่อฉันดูบันทึกข้อผิดพลาดจะมีข้อความแจ้งว่า: [ERROR] Cannot find or …
36 mysql  innodb 

4
ทำไม MySQL ไม่มีแฮชดัชนีใน MyISAM หรือ InnoDB
ฉันมีแอพพลิเคชั่นที่จะเลือกใช้ความเท่าเทียมกันเท่านั้นและฉันคิดว่าฉันควรใช้ดัชนีแฮชเหนือดัชนี btree MyISAM หรือ InnoDB ไม่รองรับดัชนีแฮชของฉัน เกิดอะไรขึ้นกับสิ่งนั้น
35 mysql  index  innodb  myisam 

5
เหตุใดจึงเลือกอย่างง่ายบน InnoDB 100x ช้ากว่าบน MyISAM
ฉันมีปัญหาค่อนข้างน่ารำคาญ ฉันต้องการใช้ INNODB เป็นเอ็นจิ้นฐานข้อมูลหลักของฉันและยอมแพ้กับ MyISAM เพราะฉันต้องการรุ่นเก่าสำหรับการใช้ galera-cluster เพื่อความซ้ำซ้อน ฉันคัดลอก (คำอธิบายด้านล่าง) newbb_postตารางเป็นตารางใหม่ที่เรียกว่าnewbb_innopostและเปลี่ยนเป็น InnoDB ขณะนี้ตารางเก็บ5,390,146ข้อมูลแต่ละรายการ การรันตัวเลือกเหล่านี้บนฐานข้อมูลที่เพิ่งเริ่มต้นใหม่ (ดังนั้นจึงไม่มีการแคชใด ๆ เกี่ยวข้องในจุดนี้!) ฐานข้อมูลให้ผลลัพธ์ต่อไปนี้ (ไม่แสดงผลลัพธ์ทั้งหมดโปรดทราบว่าฉันไม่ได้ขอให้ฐานข้อมูลเรียงลำดับผลลัพธ์): เลือก post.postid, post.attach จาก newbb_post เป็นโพสต์ WHERE post.threadid = 51506; . . | 5401593 | 0 | | 5401634 | 0 | + --------- + -------- + 62510 แถวในชุด (0.13 วินาที) …

4
MySQL InnoDB เกิดความผิดพลาดหลังจากโพสต์
เช้านี้ MySQL ก็พบกับฉัน ด้วยข้อยกเว้นของมาตรฐาน MySQL รวมฐานข้อมูลทุกอย่างที่ฉันใช้คือ InnoDB ฉันพยายามรีสตาร์ท MySQL daemon แต่ล้มเหลวสองครั้ง ฉันรีสตาร์ทเซิร์ฟเวอร์ทั้งหมดและ MySQL เริ่มต้นอย่างถูกต้องและทำงานได้ดีตั้งแต่นั้น ไฟล์บันทึก mysqld สำหรับความผิดพลาดครั้งแรกมีดังต่อไปนี้: 120927 10:21:05 mysqld_safe Number of processes running now: 0 120927 10:21:06 mysqld_safe mysqld restarted 120927 10:21:12 [Note] Plugin 'FEDERATED' is disabled. 120927 10:21:12 InnoDB: The InnoDB memory heap is disabled 120927 10:21:12 InnoDB: …

3
ฉันจะเปลี่ยนเอ็นจิ้นการจัดเก็บเริ่มต้นใน phpmyadmin ได้อย่างไร?
ฉันใช้ InnoDB เกือบทั้งหมดในแอปพลิเคชันของฉัน อย่างไรก็ตามถ้าฉันไม่ระวังเมื่อทำการตั้งค่าตารางฉันลืมที่จะเปลี่ยนและ phpmyadmin เกาะติดฉันด้วย MyISAM มีวิธีในการเปลี่ยนเอ็นจิ้นการจัดเก็บข้อมูลเริ่มต้นหรือไม่?

2
`ข้อผิดพลาด 1114 (HY000) ตาราง…เต็มไปด้วย Innodb_file_per_table ตั้งค่าเป็น autoextend
ฉันมีฐานข้อมูล MySQL ที่เก็บข้อมูลจำนวนมาก (100-200GB - การวัดทางวิทยาศาสตร์จำนวนมาก) ข้อมูลส่วนใหญ่ถูกเก็บไว้ในตารางSampleเดียว ตอนนี้ฉันกำลังสร้างแบบจำลองทาสของฐานข้อมูลและฉันต้องการใช้ประโยชน์จากinnodb_file_per_tableกระบวนการนี้ ดังนั้นฉันตั้งค่าinnodb_file_per_tableในการกำหนดค่าทาสของฉันและนำเข้าการถ่ายโอนข้อมูลของฐานข้อมูล ด้วยความประหลาดใจของฉันมันล้มเหลวด้วย ข้อผิดพลาด 1114 (HY000) ที่บรรทัด 5602: ตาราง 'ตัวอย่าง' เต็ม ปัจจุบันไฟล์Sample.ibdนี้มีขนาดประมาณ 93GB โดยมีพื้นที่ว่างบนพาร์ติชันมากกว่า 600GB ดังนั้นจึงไม่ใช่ปัญหาเรื่องพื้นที่ว่างบนดิสก์ ดูเหมือนว่ามันจะไปกระทบขีด จำกัด ของระบบไฟล์ทุกประเภท (ฉันใช้ ext4) ฉันจะขอบคุณสำหรับความคิดใด ๆ ที่อาจเป็นสาเหตุหรือสิ่งที่จะตรวจสอบ UPDATE:mysql Ver 14.14 Distrib 5.1.66, for debian-linux-gnu (x86_64)ฉันใช้ SELECT @@datadir; -- returns `/home/var/lib/mysql/` SHOW VARIABLES LIKE '%innodb_data_file_path%'; -- ibdata1:10M:autoextend …

5
วิธีการประมาณ / ทำนายขนาดข้อมูลและขนาดดัชนีของตารางใน MySQL
ฉันค้นหาสิ่งที่เป็นวิธีที่ดีที่สุดในการประเมินขนาดของตารางเพื่อที่ฉันได้ศึกษาบล็อกและฟอรัมมากมาย แต่ไม่สามารถหาคำตอบที่ถูกต้องได้ ตัวอย่างเช่นเรามีตาราง City พร้อมกับเครื่องยนต์ InnoDBสมมติว่าในอนาคต (ในอีก 1 ปีข้างหน้า) จะมี 1 ล้านระเบียนดังนั้นสิ่งที่จะเป็นขนาดข้อมูลโดยประมาณและขนาดดัชนีของตารางนั้นในช่วงเวลานี้ mysql> desc City; +-------------+----------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------+------+-----+---------+----------------+ | ID | int(11) | NO | PRI | NULL | auto_increment | | Name | char(35) | NO | …
26 mysql  innodb 

7
ทำไมต้องใช้ innodb_file_per_table
มีบทความจำนวนมากเกินความจริง (IMHO ของหลักสูตร) innodb_file_per_tableจำเป็นที่จะต้องมี ฉันเข้าใจว่าด้วยinnodb_file_per_tableควรมีการควบคุมที่ดีกว่าตารางบุคคล เช่นการสำรองข้อมูลแต่ละตารางแยกจากกัน อย่างไรก็ตามการเรียกร้องเพื่อประสิทธิภาพที่ดีขึ้นเป็นที่น่าสงสัย ในการทดสอบของฉันไม่มีความแตกต่างของประสิทธิภาพinnodb_file_per_tableและibdata1ฐานข้อมูล 60GB แน่นอนว่ามันเป็นแบบทดสอบง่ายๆที่มีคำสั่งปกติและสถานการณ์อาจแตกต่างกันไปสำหรับการค้นหาที่ซับซ้อนในชีวิตจริง (นี่คือเหตุผลที่ฉันถามคำถามนี้) Linux 64 บิตพร้อมกับext4สามารถจัดการไฟล์ขนาดใหญ่ได้อย่างมีประสิทธิภาพ ด้วยinnodb_file_per_tableการดำเนินการดิสก์ I / O เพิ่มเติมจำเป็น และสิ่งนี้มีความสำคัญในข้อ จำกัดJOINและความซับซ้อนFOREIGN KEY Tablespace ใช้งานร่วมกันบน single ibdata; พื้นที่ตารางเฉพาะสำหรับตารางแยกต่างหากสามารถประหยัดพื้นที่ดิสก์ได้อย่างไร แน่นอนว่ามันเป็นเรื่องง่ายกว่าที่จะเพิ่มพื้นที่ว่างสำหรับแต่ละตารางด้วยALTERแต่ก็ยังเป็นกระบวนการที่มีราคาแพง (ด้วยการล็อคตาราง) คำถาม:ไม่innodb_file_per_tableมีผลกระทบต่อผลการดำเนินงานที่ดีขึ้นของ MySQL? ถ้าใช่ทำไม

2
'ibfk' หมายถึงอะไรใน MySQL
ถ้าฉันสร้างข้อ จำกัด กุญแจต่างประเทศสำหรับตาราง 'รูปถ่าย' ใน phpmyadmin ภายหลังฉันเห็นว่าข้อ จำกัด ชื่อ 'photos_ibfk_1' และข้อ จำกัด ถัดไปเรียกว่า 'photos_ibfk_2' ฯลฯ จากนี้ฉันได้รวบรวมว่า [tablename] _ibfk_constraintIndex การประชุมสำหรับข้อ จำกัด ของฐานข้อมูลใน MySQL ถูกต้องหรือไม่ IBFK หมายถึงอะไร

1
Mysql Innodb: InnoDB: ข้อผิดพลาด: อายุของด่านสุดท้ายคือ InnoDB: ซึ่งเกินความจุของกลุ่มบันทึก
ฉันต้องการ mysql ที่เชี่ยวชาญจริงๆ ฉันเป็นคนใหม่ให้กับ mysql และฉันเห็นเซิร์ฟเวอร์ขัดข้องบางส่วนของฐานข้อมูลของฉันในช่วง 1 สัปดาห์ที่ผ่านมา ฉันใช้ mysql 5.1.36 บน Ubuntu นี่คือเซิร์ฟเวอร์ mysql โดยเฉพาะพร้อมหน่วยความจำ Dual core และ 4GB และ 40GB SSD ข้อผิดพลาดบันทึกคือ: 120413 23:57:15 [Note] Plugin 'FEDERATED' is disabled. 120413 23:57:15 [Warning] option 'innodb-autoextend-increment': unsigned value 2000 adjusted to 1000 120413 23:57:15 InnoDB: Initializing buffer pool, size = …
25 mysql  innodb 

3
innodb_file_format Barracuda
ฉันมีคำถามสองสามข้อสำหรับผู้ที่คุ้นเคยมากกว่า อินสแตนซ์ส่วนใหญ่ของฉันใช้แอนตีโลปแม้จะได้รับการสนับสนุนจาก Barracuda ฉันกำลังมองหาที่จะเล่นกับตาราง innodb ที่บีบอัด ความเข้าใจของฉันคือนี่ใช้ได้เฉพาะในรูปแบบ Barracuda ฉันเห็นว่า innodb_file_format เป็นแบบไดนามิกดังนั้นฉันจึงสามารถสลับกลับได้โดยไม่ต้องตีกลับ มีความหมายใด ๆ ในการทำเช่นนี้ฉันควรระวัง ทั้งหมดที่ฉันบอกได้คือนั่นหมายถึงตารางใหม่หรือการเปลี่ยนแปลงในภายหลังจะถูกสร้างด้วยรูปแบบนั้น ทั้งหมดนี้ถูกต้องหรือไม่ ฉันหวังว่าจะไม่ผ่านและแปลงตารางทั้งหมดของฉัน เป็น kosher ที่มี antelope และ barracude table อยู่ใน tablespace เดียวกันหรือไม่? แม้ว่ามันจะใช้ได้หรือไม่มี gotcha ที่ต้องระวัง? จากสิ่งที่ฉันอ่านและรวบรวมจากการทดสอบของฉันคำตอบคือ: ใช่ ใช่. ฉันไม่แน่ใจ. ปรับปรุง ฉันใช้ Dynamic กับบางตารางที่ถูกบีบอัดในอินสแตนซ์ต่าง ๆ ตั้งแต่โพสต์นี้โดยไม่มีปัญหา ต่อไปฉันละเลยที่จะอ่านhttp://dev.mysql.com/doc/refman/5.5/en/innodb-file-format-identifying.html ในเวลานั้น หลังจากที่คุณเปิดใช้งาน innodb_file_format ที่กำหนดการเปลี่ยนแปลงนี้จะใช้กับตารางที่สร้างขึ้นใหม่เท่านั้นแทนที่จะเป็นตารางที่มีอยู่ หากคุณสร้างตารางใหม่พื้นที่ตารางที่มีตารางจะถูกติดแท็กด้วยรูปแบบไฟล์“ เร็วที่สุด” หรือ“ ง่ายที่สุด” ที่จำเป็นสำหรับคุณสมบัติของตาราง …

2
ฉันจะลดขนาดไฟล์ innodb ibdata1 โดยไม่ต้องทิ้งฐานข้อมูลทั้งหมดได้อย่างไร
InnoDB เก็บตารางทั้งหมดไว้ในไฟล์ibdata1เดียว หลังจากวางตารางขนาดใหญ่ไฟล์จะรักษาขนาดของมันไม่ว่าโต๊ะจะใหญ่แค่ไหน ฉันจะลดขนาดไฟล์นั้นโดยไม่ต้องถ่ายโอนข้อมูลและนำเข้าฐานข้อมูลทั้งหมดอีกครั้ง (ซึ่งมีทั้งหมดหลายร้อย GB) ฉันคิดว่าเหตุผลก็เพราะคุณยังสามารถย้อนกลับไปลดลง ในกรณีของฉันฉันไม่จำเป็นต้อง

4
คุณจะระบุความเสียหายของตาราง InnoDB ได้อย่างไร
ฉันมีตารางบางส่วนที่แบ่งพาร์ติชันและมีดัชนีหลายรายการในสลาฟที่ถูกจำลอง หลังจากคัดลอกสแน็ปช็อต (ยืนยันความปลอดภัย) ไปยังทาสใหม่และอัปเกรด mysqld จาก 5.1.42 เป็น 5.5.15 และเริ่มการจำลองแบบใหม่ฉันได้รับ InnoDB ขัดข้องพร้อมข้อความแสดงข้อผิดพลาด "ตัวชี้ไม่ถูกต้อง ... " ข้อผิดพลาดเหล่านี้เกิดขึ้นในเซิร์ฟเวอร์ 2 เครื่องที่มีฮาร์ดแวร์และ O / S ที่แตกต่างกัน หลังจากทำงาน: ALTER TABLE .... COALESCE PARTION n; ปัญหาหายไปสำหรับตารางนั้น คำถามของฉันมีขนาดใหญ่กว่าในขอบเขตและนั่นคือ "คุณจะระบุความเสียหายของตาราง InnoDB ได้อย่างไร" หรือ rephrased "คุณประเมินสุขภาพของตาราง InnoDB อย่างไร" คือ"ตรวจสอบตาราง"เครื่องมือเดียวที่มีอยู่เพื่อแจ้งปัญหา pre-crash? ไม่แน่ใจว่ามีปัญหาหรือไม่ แต่เกิดปัญหาการทำงาน: รุ่น: ซ็อกเก็ต '5.5.15-55-log': พอร์ต '/opt/mysql.sock': 3306 เซิร์ฟเวอร์ …

1
ขนาดธุรกรรม MySQL มีขนาดใหญ่เกินไป?
ฉันมีกระบวนการนำเข้าที่ทำงานบ่อยมากและฉันต้องการให้เป็นข้อตกลง 'all or nothing' หรือ aka: ธุรกรรม มีหลายด้านและการนำเข้าอาจให้ผลที่ใดก็ได้ระหว่างระเบียน 100k-1mil + นี่เท่ากับเพย์โหลดตั้งแต่หลาย MB ไปจนถึงสองสามร้อย MB ของข้อมูล ฉันรู้ว่าตารางชั่วคราวเป็นอีกตัวเลือกหนึ่ง - แต่วิธีนี้ดูมีประโยชน์มาก มีคำเตือนใด ๆ ที่ควรระวังเกี่ยวกับการฝึกฝนประเภทนี้ด้วยการจัดการข้อมูลจำนวนมากระหว่างการกระทำหรือไม่? (ด้านนอกของโหลดการเขียน / การจัดทำดัชนีโดยทั่วไปจะเกิดขึ้นเมื่อมีการยืนยัน)

6
คำสั่ง DELETE ไม่เสร็จในตาราง 30,000,000 แถว
ฉันได้รับฐานข้อมูลและต้องการทำความสะอาดและเร่งความเร็ว ฉันมีตารางที่มีแถว 30,000,000 แถวซึ่งส่วนใหญ่เป็นข้อมูลขยะที่แทรกเนื่องจากข้อผิดพลาดในนามของโปรแกรมเมอร์ของเรา ก่อนที่ฉันจะเพิ่มดัชนีใหม่ที่ได้รับการปรับปรุงให้ดีขึ้นฉันจะแปลงตารางจาก MyISAM เป็น InnoDB และฉันต้องการลบแถวจำนวนมากที่มีข้อมูลขยะ ฐานข้อมูลคือ MySQL 5.0 และฉันมีสิทธิ์เข้าถึงรูทไปยังเซิร์ฟเวอร์ ฉันใช้งานคำสั่งเหล่านี้เป็นครั้งแรกผ่านทาง Adminer จากนั้น phpMyAdmin ทั้งคู่ก็มีผลลัพธ์เหมือนกัน คำสั่งที่ฉันใช้คือ DELETE FROM `tablename` WHERE `columnname` LIKE '-%' -เป็นหลักอะไรลบในคอลัมน์นี้ที่เริ่มต้นด้วยเส้นประ มันใช้เวลาประมาณ 3-5 นาทีและเมื่อฉันดูรายการกระบวนการมันก็หายไป จากนั้นฉันก็วิ่ง SELECT * FROM `tablename` WHERE `columnname` LIKE '-%' และจะส่งคืนแถวนับล้าน ทำไมคำสั่งลบของฉันจึงไม่เสร็จ PS, ฉันรู้ว่า MySQL 5.0 ล้าสมัยแล้วอย่างไร ฉันกำลังทำงานเกี่ยวกับการย้ายฐานข้อมูลไปยัง MySQL 5.6 w …

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