New Post

Sunday, April 22, 2012


MS SQL và MySQL đều có những điểm đặc thù của chúng. Nếu cần so sánh, nên so sánh theo tính năng, hiệu suất, bảo mật và khả năng phục hồi.... 

Tôi thấy MySql phiên bản 4.x không thể so với MSSQL vì phiên bản này thiếu khá nhiều tính năng quan trọng để được xếp loại là một CSDL hạng nặng (ví dụ như thiếu ứng dụng View, StoreProc, Triggers...). Để công bằng nên thử so sánh MySql 5.x và MSSQL 2005. 

1. Tính năng: 
Tôi cho rằng MySql hơn MSSQL ở tính năng cung cấp nhiều loại storage engine. Tuy nhiên tính về mặt integration chặt chẽ cho trọn bộ hệ thống và công cụ phát triển software thì MSSQL integrate tốt hơn MySql, đặc biệt ở mảng .NET. MSSQL còn hỗ trợ XML trực tiếp trong DB, trong khi đó thì MySQL chưa làm được chuyện này. Các chức năng cần thiết như View, StoreProcedure, Trigger thì cả hai tương đương nhau. 

2. Hiệu suất: 
Tính về mặt hiệu suất, có rất nhiều thử nghiệm và tường trình cho rằng MSSQL perform kém hơn MySQL nhiều mặt. MSSQL đòi hỏi tài nguyên rất lớn (CPU mạnh, nhiều RAM...), nếu không nó rất ì ạch. MySQL không đòi hỏi nhiều như MSSQL. MySQL có thể chạy trên các UNIX highend system và perform tốt hơn MSSQL trên Windows highend server trong nhiều trường hợp. 

3. Bảo mật: 
MSSQL qua mặt MySQL về tính bảo mật ở column level. MySQL chỉ có thể set access đến row level là hết. Hệ thống xác thực người dùng của MSSQL cũng qua mặt MySQL. Tuy vậy, trên bình diện "để hở cổng" thì MSSQL dễ bị exploit hơn MySQL bởi MSSQL tích hợp quá chặt vào hệ điều hành. Lỗi của hệ điều hành hoặc một bộ phận nào đó dẫn đến việc nhân nhượng MSSQL nhanh chóng hơn MySQL. 

4. Khả năng nhân bản (replication): 
Cả hai đều có khả năng replicate hoặc cung cấp phương tiện để làm việc này. Tuy nhiên, MySQL nhanh hơn và ít sự cố hơn MSSQL vì tất cả các SQL statements dùng để thay đổi, cập nhật dữ liệu được lưu giữ trong binary log. MSSQL cung cấp nhiều phương pháp replicate cao cấp hơn, chi tiết hơn bởi thế nó phức tạp hơn và chậm hơn. 

5. Khả năng phục hồi (recovery): 
Nếu MySQL chạy thuần túy với MyISAM storage engine thì khả năng phục hồi (sau khi bị crash) không cách gì so sánh với MSSQL. Tuy nhiên nếu MySQL chạy với Innodb engine thì khả năng phục hồi không thua kém gì MSSQL. Ngoài ra, khả năng phục hồi còn được xét ở biên độ liên quan đến khả năng nhân bản (replication) ở trên. Bởi vì MSSQL cung cấp nhiều phương thức nhân bản nên việc phục hồi dữ liệu trên MSSQL dễ dàng hơn. 

6. Phí tổn: 
MySQL bản community không hề tốn tiền để mua nhưng bạn phải tự xắn tay áo lên. Tuy nhiên cài đặt, sử dụng và tối ưu MySQL không khó vì tài liệu của nó rất đầy đủ, thông tin về MySQL tràn ngập trên web. So với MSSQL, bạn phải trả gần một ngàn rưỡi đô cho 1 license MSSQL standard và khi cần support, bạn phải trả thêm tiền support (tùy case). MS vẫn cung cấp bản MSSQL không thu phí dành cho mục đích development. Tài liệu về MSSQL cũng rất nhiều trên mạng. Bản MySQL enterprise thì phải trả tiền (khoảng 400 đô) nhưng bạn được support đầy đủ. 

Kinh nghiệm bản thân tôi thấy MySQL dùng được. Có thể cáng đáng khối lượng dữ liệu rất lớn. Tuy vậy, dùng MyISAM thì nhanh nhưng sẽ gặp nhiều vấn đề phức tạp. Dùng Innodb thì chậm hơn nhưng ít bị những trục trặc về "deadlock". Dùng MSSQL thì server phải tốt không thì ì ạch lắm. Nói chung, dùng CSDL nào đi chăng nữa, việc tối ưu chúng là việc không thể thiếu được. Việc nhập / xuất dữ liệu nên xét thật kỹ lưỡng và logic. Không lạm dụng tính năng của CSDL và phó mặc cho chúng. Tất cả các SQL statement phải "make sense" và vừa đủ. 

[SOURCE]hvaonline.net[/SOURCE]

0 nhận xét:

Post a Comment