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

MyISAM เป็นเอ็นจิ้นการจัดเก็บข้อมูลที่ไม่ใช่ธุรกรรมสำหรับ MySQL มันมีการจัดเก็บข้อมูลความเร็วสูงและการดึงเช่นเดียวกับความสามารถในการค้นหาแบบเต็ม นอกจากนี้มันเป็นประเภทเอ็นจิ้นการจัดเก็บเริ่มต้นสำหรับ MySQL รุ่นก่อนหน้า 5.5


5
จะเปลี่ยน MySQL innodb variable ได้อย่างไร 'innodb_log_file_size'
ดังนั้นฉันค่อนข้างใหม่ในการปรับแต่ง InnoDB ฉันค่อยๆเปลี่ยนตาราง (จำเป็น) จาก MyIsam เป็น InnoDB ฉันมี innodb ประมาณ 100MB ดังนั้นฉันจึงเพิ่มinnodb_buffer_pool_sizeตัวแปรเป็น 128MB: mysql> show variables like 'innodb_buffer%'; +-------------------------+-----------+ | Variable_name | Value | +-------------------------+-----------+ | innodb_buffer_pool_size | 134217728 | +-------------------------+-----------+ 1 row in set (0.00 sec) เมื่อฉันไปเปลี่ยนinnodb_log_file_sizeค่า (ตัวอย่าง my.cnf บนหน้าการกำหนดค่า innodb ของ mysql แสดงความคิดเห็นเพื่อเปลี่ยนขนาดไฟล์บันทึกเป็น 25% ของขนาดบัฟเฟอร์ดังนั้นตอนนี้ my.cnf ของฉันมีลักษณะเช่นนี้: …
105 mysql  innodb  myisam  logs 

4
InnoDB หรือ MyISAM ไหนเร็วกว่ากัน
MyISAM จะ "เร็วขึ้น" ได้อย่างไรกว่า InnoDB ถ้า MyISAM จำเป็นต้องอ่านข้อมูลในดิสก์หรือไม่ InnoDB ใช้บัฟเฟอร์พูลสำหรับดัชนีและข้อมูลและ MyISAM สำหรับดัชนีเท่านั้น

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

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 วินาที) …

6
วิธีอัปเดต 10 ล้านแถวใน MySQL ตารางเดียวเร็วที่สุด
ใช้ MySQL 5.6 กับเครื่องมือจัดเก็บข้อมูล InnoDB สำหรับตารางส่วนใหญ่ ขนาดบัฟเฟอร์พูล InnoDB คือ 15 GB และดัชนี Innodb DB + มีขนาดประมาณ 10 GB เซิร์ฟเวอร์มี RAM 32GB และใช้งาน Cent OS 7 x64 ฉันมีตารางใหญ่หนึ่งตารางที่มีเร็กคอร์ดประมาณ 10 ล้านรายการ ฉันได้รับไฟล์ดัมพ์ที่อัปเดตจากเซิร์ฟเวอร์ระยะไกลทุก 24 ชั่วโมง ไฟล์อยู่ในรูปแบบ csv ฉันไม่สามารถควบคุมรูปแบบนั้นได้ ไฟล์นี้มีขนาด ~ 750 MB ฉันพยายามแทรกข้อมูลลงในตาราง MyISAM แบบแถวต่อแถวและใช้เวลา 35 นาที ฉันต้องใช้เพียง 3 ค่าต่อบรรทัดจาก 10-12 จากไฟล์และอัปเดตในฐานข้อมูล อะไรคือวิธีที่ดีที่สุดในการบรรลุสิ่งนี้ …

3
การแบ่งพาร์ติชันตารางช่วยได้อย่างไร
ฉันมีปัญหาในการคว้าความคิดของข้อดีและข้อเสียของการแบ่งตาราง ฉันกำลังจะเริ่มทำงานในโครงการซึ่งจะมี 8 ตารางและหนึ่งในนั้นจะเป็นตารางข้อมูลหลักที่จะเก็บบันทึก 180-260 ล้าน เนื่องจากมันจะถูกทำดัชนีตารางอย่างถูกต้องดังนั้นฉันคิดว่าการ จำกัด ระเบียนของตารางไว้ที่ 20 ล้านด้วยวิธีนี้ฉันจะต้องสร้างตาราง 9-13 แต่ฉันไม่แน่ใจว่ามันจะปรับปรุงประสิทธิภาพได้อย่างไรเพราะพวกเขาจะนั่งอยู่บนเครื่องเดียวกัน (32GB RAM)? ฉันใช้ MySQL และตารางจะเป็น MyISAM และตารางใหญ่จะมีดัชนีในฟิลด์ id และไม่มีความซับซ้อนเพิ่มเติมเช่นการค้นหาข้อความแบบเต็มเป็นต้น โปรดแสดงการแบ่งตารางเทียบกับการแบ่งพาร์ติชันฐานข้อมูลด้วย

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

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 …

3
ค่าใช้จ่ายในการตรวจสอบแคชแบบสอบถามบ่อยครั้งคุ้มค่าหรือไม่
ขณะนี้ฉันกำลังทำงานกับฐานข้อมูล MySQL ที่เราเห็นการตรวจสอบความถูกต้องจำนวนมากจากแคชแบบสอบถามเป็นหลักเนื่องจากคำสั่ง INSERT, DELETE และ UPDATE จำนวนมากที่ถูกเรียกใช้งานในหลาย ๆ ตาราง สิ่งที่ฉันพยายามตรวจสอบคือการมีประโยชน์ใด ๆ หรือไม่ที่จะอนุญาตให้ใช้แคชแบบสอบถามสำหรับคำสั่ง SELECT ที่กำลังเรียกใช้กับตารางเหล่านี้ เนื่องจากพวกเขาได้รับการทำให้ใช้งานไม่ได้อย่างรวดเร็วดูเหมือนว่าสิ่งที่ดีที่สุดคือการใช้ SQL_NO_CACHE ในคำสั่ง SELECT ด้วยตารางเหล่านี้ ค่าใช้จ่ายในการตรวจสอบความถูกต้องบ่อยครั้งเป็นสิ่งที่คุ้มค่าหรือไม่? แก้ไข: ตามคำขอของผู้ใช้ @RolandoMySQLDBA ด้านล่างนี่คือข้อมูลเกี่ยวกับ MyISAM และ INNODB InnoDB ขนาดข้อมูล: 177.414 GB ขนาดดัชนี: 114.792 GB ขนาดโต๊ะ: 292.205 GB MyISAM ขนาดข้อมูล: 379.762 GB ขนาดดัชนี: 80.681 GB ขนาดโต๊ะ: 460.443 GB ข้อมูลเพิ่มเติม: เวอร์ชัน: …

3
เป็นการปฏิบัติทั่วไปหรือไม่ที่จะผสมตาราง InnoDB และ MyISAM บนเซิร์ฟเวอร์เดียวกัน
ฉันมีฐานข้อมูลเดียวประมาณ 4.5GB ที่ทำงานบนเซิร์ฟเวอร์ที่มี 8GB RAM ตารางส่วนใหญ่คือ MyIsam (ประมาณ 4.3GB) แต่ในไม่ช้าฉันจะแปลงบางส่วนเป็น InnoDB (มันจะเป็นกระบวนการที่ช้าโดยเน้นไปที่ตารางที่เน้นการเขียนมากที่สุดในตอนแรก) มีอะไรผิดปกติในการใช้งานเซิร์ฟเวอร์เฉพาะซึ่งมีเอ็นจินการจัดเก็บทั้งสองประเภทอยู่หรือไม่?

1
mysqldump ดัชนีการส่งออกเป็นค่าเริ่มต้นหรือไม่
ผมเล่นไปรอบ ๆ เล็ก ๆ น้อย ๆ ที่มี mysqldump และผมสงสัยว่าถ้ามันไม่ดัชนีการส่งออก ( FULLTEXT, INDEX, ... ) โดยค่าเริ่มต้น ฉันอ่านมันและฉันพบตัวเลือกนี้ : --disable-keys, -K ซึ่งแสดงว่ามันส่งออกดัชนีจริง ๆ หรือไม่ แต่ฉันไม่ต้องการที่จะเชื่อใจการตีความของฉันและฉันต้องการให้แน่ใจว่าฉันเข้าใจถูก (หรือผิด ;-)) มีใครยืนยันได้บ้าง

3
สุดยอด MyISAM และ InnoDB
เป็นไปได้หรือไม่ที่จะทำให้ InnoDB ใช้ดัชนีเช่นเดียวกับ MyISAM แทนที่จะเป็นดัชนีแบบคลัสเตอร์เนื่องจากข้อ จำกัด ของ RAM ในขณะที่รับประโยชน์จากประสิทธิภาพการทำงานพร้อมกัน?

2
แถวขาดหายไปหลังจากการแปลงออนไลน์จาก MyISAM เป็น InnoDB
เรามีฐานข้อมูลขนาดเล็กพอสมควรที่เราต้องการแปลงจาก MyISAM เป็น InnoDB ในฐานะที่เป็น noobs ของฐานข้อมูลเราเพิ่งแปลง (โดยใช้ตารางแก้ไข) โดยไม่ทำให้เว็บไซต์ล้มเหลว ตอนนี้การแปลงเสร็จสิ้นแถวจำนวนมากเป็นระยะ ๆ ดูเหมือนจะหายไป อาจเป็นเพราะการดำเนินการระหว่างการแปลงหรือไม่ หรือเป็นปัญหาที่อื่น?
16 mysql  innodb  myisam 

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