คำถามติดแท็ก mysql-5.0

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 …

2
เราสามารถทำอะไรใน MySQL 5.0 Replication เพื่อจัดการกับปัญหาแบนด์วิดท์?
ฉันกำลังพัฒนาแอพพลิเคชั่นให้ทำงานบนไคลเอนต์พีซี (Win) ซึ่งได้รับการกำหนดค่าด้วยอินสแตนซ์ของเซิร์ฟเวอร์ MySQL 5.1 ที่จะทำหน้าที่เป็นสลาฟแบบอ่านอย่างเดียวไปยังต้นแบบระยะไกล ต้นแบบระยะไกลมีสกีมาหลายสิบ แต่ฉันต้องการเพียงหนึ่งต่อไคลเอนต์ดังนั้นฉันให้การตั้งค่าการจำลองแบบ - do-dbใน my.ini เพื่อทำซ้ำสคีมาที่ลูกค้าต้องการเท่านั้น การจำลองแบบใช้งานได้ แต่เมื่อลูกค้าของเราเข้าสู่ภูมิภาคต่างๆของโลกที่มีการเข้าถึงอินเทอร์เน็ตผ่านเครือข่ายไร้สาย 3G เท่านั้นซึ่งเรียกเก็บตามการใช้ข้อมูลลูกค้าจะเกินขีด จำกัด แผนข้อมูลของพวกเขาอย่างรวดเร็วและประสบปัญหาราคาแพง ดังที่ฉันเข้าใจแล้ว MySQL จะเขียนธุรกรรมทั้งหมดสำหรับสกีมาทั้งหมดลงในไฟล์ binlog ไฟล์เดียวซึ่งหมายความว่าไคลเอนต์แต่ละคนจะต้องดาวน์โหลดธุรกรรมทั้งหมดที่ดำเนินการกับทุกสกีมาบนมาสเตอร์แล้วดาวน์โหลดเมื่อใช้ตัวกรองฐานข้อมูลต่อการจำลองแบบการตั้งค่าdo-dbในไฟล์ my.ini ของลูกค้า เพื่อลดความไร้ประสิทธิภาพนี้ฉันได้ใช้การตั้งค่าslave_compressed_protocol = 1ซึ่งดูเหมือนว่าจะลดข้อมูลที่ส่งลง 50% แต่ก็ยังทำให้ลูกค้าของเราเกินขีด จำกัด ข้อมูลที่รวดเร็วขึ้นในบิล 3G ฉันไม่สามารถจินตนาการได้ว่าฉันเป็นเพียงคนเดียวที่พบสิ่งนี้ดังนั้นฉันแน่ใจว่าฉันจะได้รับคำตอบมากมายเกี่ยวกับวิธีการบรรลุเป้าหมายนี้โดยการตั้งค่า x = y อย่างไรก็ตามฉันไม่พบเอกสารของการตั้งค่าดังกล่าวหรือวิธีการที่แนะนำให้ใช้ จนถึงตอนนี้นี่เป็นความคิดของฉันในการแก้ปัญหาที่เป็นไปได้โปรดให้ข้อเสนอแนะหรือเส้นทางอื่น: ตั้งค่าทาส "พร็อกซี" สำหรับแต่ละสคีมา (ในกล่องอื่นหรือกล่องเดียวกันกับอินสแตนซ์ / พอร์ต MySQL อื่น) กำหนดค่าพร็อกซี slave เพื่อทำซ้ำ-do-db …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.