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

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

9
ข้อ จำกัด คีย์ต่างประเทศผิดพลาดล้มเหลว
ฉันได้รับข้อความแสดงข้อผิดพลาดนี้: ข้อผิดพลาด 1217 (23000) ที่บรรทัด 40: ไม่สามารถลบหรืออัปเดตแถวหลัก: ข้อ จำกัด ของคีย์ภายนอกล้มเหลว ... เมื่อฉันพยายามวางโต๊ะ: DROP TABLE IF EXISTS `area`; ... กำหนดไว้เช่นนี้: CREATE TABLE `area` ( `area_id` char(3) COLLATE utf8_spanish_ci NOT NULL, `nombre_area` varchar(30) COLLATE utf8_spanish_ci NOT NULL, `descripcion_area` varchar(100) COLLATE utf8_spanish_ci NOT NULL, PRIMARY KEY (`area_id`), UNIQUE KEY `nombre_area_UNIQUE` (`nombre_area`) ) ENGINE=InnoDB …
110 mysql  innodb 

7
มีประสิทธิภาพที่เพิ่มขึ้นในการสร้างดัชนีฟิลด์บูลีนหรือไม่?
ฉันกำลังจะเขียนแบบสอบถามที่มีไฟล์WHERE isok=1. ตามความหมายของชื่อisokคือฟิลด์บูลีน (อันที่จริงTINYINT(1) UNSIGNEDคือตั้งค่าเป็น 0 หรือ 1 ตามต้องการ) มีประสิทธิภาพที่เพิ่มขึ้นในการสร้างดัชนีฟิลด์นี้หรือไม่? เครื่องยนต์ (InnoDB ในกรณีนี้) จะทำงานได้ดีขึ้นหรือแย่ลงในการค้นหาดัชนี?
104 mysql  indexing  innodb 

9
ค้นหาแบบเต็มข้อความด้วย InnoDB
ฉันกำลังพัฒนาเว็บแอปพลิเคชันปริมาณมากโดยที่ส่วนหนึ่งเป็นฐานข้อมูล MySQL ของโพสต์การสนทนาที่จะต้องเพิ่มเป็น 20M + แถวอย่างราบรื่น เดิมทีฉันวางแผนที่จะใช้ MyISAM สำหรับตาราง (สำหรับความสามารถในการค้นหาแบบเต็มข้อความในตัว ) แต่ความคิดของตารางทั้งหมดถูกล็อคเนื่องจากการเขียนเพียงครั้งเดียวทำให้ฉันชัตเตอร์ การล็อกระดับแถวมีความหมายมากขึ้น (ไม่ต้องพูดถึงข้อดีด้านความเร็วอื่น ๆ ของ InnoDB เมื่อจัดการกับโต๊ะขนาดใหญ่) ด้วยเหตุนี้ฉันจึงค่อนข้างตั้งใจที่จะใช้ InnoDB ปัญหาคือ ... InnoDB ไม่มีความสามารถในการค้นหาแบบเต็มข้อความในตัว ฉันควรใช้ระบบค้นหาของบุคคลที่สามหรือไม่? เช่นLucene (c ++) / Sphinx ? นินจาฐานข้อมูลของคุณมีข้อเสนอแนะ / แนวทางหรือไม่?zoieของ LinkedIn (จาก Lucene) ดูเหมือนจะเป็นตัวเลือกที่ดีที่สุดในขณะนี้... ถูกสร้างขึ้นจากความสามารถแบบเรียลไทม์ (ซึ่งค่อนข้างสำคัญสำหรับแอปพลิเคชันของฉัน) ฉันลังเลเล็กน้อยที่จะกระทำโดยไม่มีข้อมูลเชิงลึก ... (FYI: จะอยู่ใน EC2 พร้อมแท่นขุดเจาะหน่วยความจำสูงโดยใช้ PHP เพื่อให้บริการส่วนหน้า)

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