ข้อผิดพลาดของการใช้ MySQL เป็นตัวเลือกฐานข้อมูลของคุณ? [ปิด]


20

ฉันได้อ่านออนไลน์ในหลายครั้งที่ MySQL เป็นฐานข้อมูลที่ไม่ดี สถานที่ที่ฉันได้อ่านนี้รวมถึงกระทู้บางส่วนใน Reddit แต่ดูเหมือนพวกเขาจะไม่เคยเจาะลึกว่าทำไมมันถึงเป็นผลิตภัณฑ์ที่ไม่ดี

มีความจริงใด ๆ ต่อการอ้างสิทธิ์นี้หรือไม่? ฉันไม่เคยใช้มันเกินกว่าสถานการณ์ CRUD ที่ง่ายมากและนั่นเป็นโครงการมหาวิทยาลัยในช่วงปีที่สองของฉัน

มีข้อผิดพลาดอะไรบ้างถ้ามีเมื่อเลือก MySQL เป็นฐานข้อมูลของคุณ


7
ความผิดพลาดที่สำคัญที่สุดก็คือความกระตือรือร้นของ Postgres จะพยายามทำให้คุณไม่มั่นใจเกี่ยวกับทางเลือกของคุณ
Dan Ray

Wikimedia ใช้มันดังนั้นจึงไม่ควรเลวร้ายเกินไป
Arlen Beiler

คำตอบ:


32

มีข้อผิดพลาดสองแบบที่แตกต่างกันคือการใช้ MySQL เป็นรสชาติของRDBMSและการใช้ RDBMS แทนที่จะเป็นฐานข้อมูลประเภทอื่น

ใช้ MySQL แทน RDBMS สำรอง:

  • ดูตารางเปรียบเทียบวิกิพีเดียสำหรับการเปรียบเทียบ MySQL กับ RDBMS อื่น ๆ
  • คุณน่าจะชอบ Microsoft SQL Server มากหากคุณกำลังสร้างแอปพลิเคชันเว็บ ASP.NET เนื่องจากระบบได้รับการออกแบบมาให้ทำงานร่วมกันได้ดีฉันเชื่อว่าทั้งนักพัฒนาและผู้จัดการฝ่ายไอที
  • คุณอาจต้องการ Oracle หากคุณต้องการตั้งค่าฐานข้อมูลขั้นสูงเพิ่มเติมเกี่ยวกับการทำคลัสเตอร์ (Oracle RAC) หรือขั้นตอนฐานข้อมูลขั้นสูง ไม่ใช่ว่า MySQL ไม่รองรับคุณสมบัติหลายอย่าง แต่จากสิ่งที่ฉันเห็นคุณมีแนวโน้มที่จะพบ DBA ที่มีประสบการณ์ซึ่งรู้จักสิ่งนี้สำหรับ Oracle มากกว่า MySQL
  • ดูคำถามนี้ที่ SO เพื่อการเปรียบเทียบอย่างกว้างขวางของ PostgreSQL กับ MySQLที่บอกว่าดีกว่าที่ฉันสามารถทำได้
  • SO มากยิ่งขึ้น: ข้อเสียของ mysql กับฐานข้อมูลอื่น ๆ

ใช้ RDBMS แทนประเภทอื่น ๆ :

ทุกสิ่งที่กล่าวว่า MySQL เป็นฐานข้อมูลที่ยอดเยี่ยมและฉันไม่ได้ทำงานกับ บริษัท ในช่วง 8 ปีที่ไม่ได้ใช้มันในแอปพลิเคชันเว็บที่หลากหลาย (เช่นอีคอมเมิร์ซเว็บไซต์ / แอพ , องค์กร / B2B, เกมบนเว็บ) สำหรับกรณีทั่วไปที่ใช้งานเว็บแอปพลิเคชันส่วนใหญ่เป็นตัวเลือกที่ยอดเยี่ยม


4
คำตอบที่ยอดเยี่ยมโดยเฉพาะอย่างยิ่งสำหรับ MySQL เทียบกับ RDBMS และ RDBMS เทียบกับ NoSQL
Josh K

1
SQL Server ยังมีการทำคลัสเตอร์และคุณสมบัติขั้นสูง แต่คุณถูกยืนยันว่าคุณจะมีปัญหามากขึ้นในการค้นหาผู้เชี่ยวชาญฐานข้อมูล mySQL ที่สามารถจัดการกับสิ่งต่าง ๆ หรือแม้แต่รู้วิธีการออกแบบพวกเขา คนเหล่านั้นส่วนใหญ่มีความเชี่ยวชาญใน Oracle, db2 หรือ SQL Server
HLGEM

1
@HLGEM ขอบคุณที่ชี้แจงว่าฉันตั้งใจจะแสดงว่าจุดแข็งของออราเคิลนั้นมีอะไรบ้างไม่ใช่ว่า DBMS อื่นไม่รองรับคุณสมบัติเหล่านั้น SQL Server นั้นมีความสามารถในด้านนั้นอย่างแน่นอน แต่ก็มีข้อเสียตามธรรมชาติของการพึ่งพา Windows สำหรับ บริษัท ที่ไม่ได้ใช้ Windows เพื่อสิ่งอื่นใด
นิโคล

1
นั่นเป็นความจริงอย่างแน่นอนการพึ่งพา Windows ทำให้ SQL Server เสียหาย
HLGEM

8

ขณะนี้ MySQL อยู่ภายใต้การควบคุมของ Oracle - แม้ว่าโอเพ่นซอร์สจะยังคงตัดสินใจทิศทางของโครงการและสิ่งที่จะเข้ามา

ในแง่ของการเป็นฐานข้อมูลที่ไม่ดีไม่ใช่แค่ง่ายกว่าบางอย่าง

หากคุณกำลังมองหาจุดอ่อนฉันจะชี้ให้พวกคุณดูให้ลองใช้ PostgreSQL

  1. MySQL ขาดประเภทคอนเทนเนอร์และอาร์เรย์
  2. MySQL ขาดลำดับที่แท้จริง (พวกมันใช้การเพิ่มอัตโนมัติ) - ลำดับ Postgres อนุญาตให้หลาย ๆ ตารางใช้ลำดับเดียวเพื่อให้คุณสามารถรับประกัน cardinality ในหลาย ๆ ตาราง
  3. Postgres เป็นไปตามข้อกำหนดของกรด, MySQL เป็นบางส่วนที่เข้ากันได้
  4. Postgres ใช้ตัวละครที่แตกต่างกันและข้อความในลักษณะเดียวกัน (Toast Tables) - วิธีนี้ส่วนใหญ่จะโต้แย้งดีกว่า MySQL
  5. Postgres มีแบ็กเอนด์ที่เก็บข้อมูลเดียวเท่านั้นซึ่งหมายความว่าคุณรับประกันได้ว่าจะมีคุณสมบัติเดียวกันทุกที่
  6. Postgres อนุญาตให้ฟังก์ชันฝั่งเซิร์ฟเวอร์เขียนใน TCL, Python, R และ Perl
  7. Postgres รองรับไดรเวอร์ Asynchronous ใน Python ได้เป็นอย่างดี - ฉันคิดว่ามันน่าผิดหวังเล็กน้อยกับ MySQL

6

ในอดีตมันอ่อนแอในการสนับสนุนการทำธุรกรรมและการทำธุรกรรมมีความสำคัญหากคุณต้องการเก็บฐานข้อมูลที่สอดคล้องกัน ทุกวันนี้แร็พใหญ่ก็คือออราเคิลเป็นเจ้าของ


4

เป็นเวลานาน MySQL เป็นมากกว่าฐานข้อมูล "ของเล่น" มันไม่ได้จัดการกับตัวเลือกย่อยที่ซ้อนกันไม่สนับสนุนการแบ่งพาร์ติชันข้อมูลไม่ได้เสนอระดับการแยกธุรกรรมหลายระดับไม่สนับสนุนทริกเกอร์หรือขั้นตอนการจัดเก็บ - สิ่งต่าง ๆ มากมาย ผู้คนจำนวนมากที่มาจากพื้นหลังของ Oracle หรือ SQL Server ได้เลิกทำ

ฉันคิดว่าเหตุผลที่แท้จริงที่คุณไม่เห็นรายการข้อบกพร่องของ MySQL จำนวนมากก็คือมันมีฐานแฟนคลับที่ค่อนข้างบ้าคลั่งที่ลบหรือลงคะแนนถึงการกล่าวถึงสาธารณะของพวกเขา ฉันรู้ทุกครั้งที่ฉันพูดถึงปัญหาใด ๆ ที่ฉันมีกับมันการตอบสนองมีแนวโน้มที่จะเป็นเชิงลบอย่างท่วมท้น


3

MySQL เป็นไปตามข้อกำหนดของกรดเมื่อใช้กับเอนจิ้นการจัดเก็บข้อมูลของ InnoDB - ไม่มีเหตุผลที่จะไม่ใช้ดังนั้น MySQL เป็นไปตามข้อกำหนดของกรด (เมื่อเผยแพร่ 5.5 InnoDB เป็นเอ็นจิ้นการจัดเก็บข้อมูลเริ่มต้น)

MySQL ได้รับการกดที่ไม่ดีมากเพราะมันมักถูกใช้ (หรือจนกระทั่งถึง NoSQL) ในฐานะ RDBMS ที่ถูกเลือกโดยผู้ที่ต้องการฐานข้อมูลแทบทั้งหมด (และอาจมีทักษะ RDBMS ที่ จำกัด ) และใช้ในค่อนข้างยุ่งยาก ลักษณะ.

ฉันใช้ MySQL บ่อยครั้งและตั้งแต่ 5.x มาพร้อมกันมีน้อยมากที่จะบ่นเกี่ยวกับเรื่องนี้สำหรับการติดตั้ง 95% ที่มีข้อกำหนดตรงกลางถนน


0

ข้อมูลเสียหาย: http://planet.mysql.com/entry/?id=16232

มาจากปี 2008 กันเถอะหวังว่าทุกอย่างจะเปลี่ยนไปในระหว่างนี้

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