Chúng tôi sử dụng cơ sở dữ liệu để lưu trữ, sắp xếp, truy vấn và xử lý dữ liệu có cấu trúc trong hệ thống máy tính một cách nhanh chóng và hiệu quả
Trong bài đăng này, tôi sẽ nêu bật hai cơ sở dữ liệu hàng đầu là MySQL và Oracle khác nhau như thế nào. Không chậm trễ, bây giờ chúng ta hãy đi vào chi tiết của MySQL và Oracle để phân tích những khác biệt kỹ thuật quan trọng của chúng
Dưới đây tôi đã so sánh MySQL và Oracle từ góc độ xây dựng các ứng dụng web quy mô lớn và đám mây cấp doanh nghiệp. Nói chung, bài đăng này giả định rằng bạn đã quen thuộc với các khái niệm cơ sở dữ liệu
cơ sở dữ liệu MySQL
Không còn nghi ngờ gì nữa, MySQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở phổ biến nhất. SQL trong MySQL là viết tắt của Structured Query Language, được định nghĩa bởi tiêu chuẩn SQL ANSI/ISO
MySQL được cài đặt miễn phí và có sẵn theo giấy phép GPL cho các dự án nguồn mở
Tuy nhiên, một nhà cung cấp phần mềm muốn phân phối phần mềm MySQL như một phần của dịch vụ cung cấp phải ký kết thỏa thuận cấp phép thương mại với Oracle
Ngoài ra, MySQL là một phần của ngăn xếp phát triển web LAMP
Tại thời điểm viết bài này, phiên bản 8. 0. 26 là bản phát hành ổn định gần đây hơn
Các biến thể sản phẩm của cơ sở dữ liệu MySQL
MySQL Community Server được cài đặt miễn phí, trong khi MySQL Standard Edition được cấp phép với giá từ 2.000 đô la hàng năm. Mặc dù MySQL Standard Edition có cùng phần mềm với MySQL Community Server, nhưng đây là dịch vụ trả phí vì nó có hỗ trợ
Nếu bạn cần thêm hỗ trợ, công cụ và chứng chỉ cấp doanh nghiệp, hãy sử dụng MySQL Enterprise Edition, bắt đầu từ $5.000 hàng năm
Cuối cùng, ưu đãi cao cấp nhất là MySQL Cluster Carrier Grade Edition. Nó có giá bắt đầu từ 10.000 đô la hàng năm và đi kèm với các tính năng nâng cao như
- phân cụm,
- tính sẵn sàng cao,
- khả năng mở rộng,
- Bảo vệ,
- sao lưu,
- và giám sát
Tham khảo danh sách các tính năng có sẵn trong các phiên bản khác nhau để biết thêm thông tin
Ngoài số lượng CPU máy chủ, giá cả sẽ phụ thuộc vào việc khách hàng chọn cấp phép dựa trên đăng ký vĩnh viễn hay hàng năm
Bảng giá đầy đủ có sẵn ở đây
Khách hàng chính của cơ sở dữ liệu MySQL
Nhiều doanh nghiệp trên nhiều lĩnh vực và ngành dọc sử dụng cơ sở dữ liệu MySQL
- Công nghệ. táo và NASA
- viễn thông. AT&T không dây
- Mạng xã hội. Facebook, GitHub và YouTube
- Ứng dụng web. Airbnb, Uber và WordPress
- Chế tạo. GE, Toyota và Tesla
Bạn có thể tìm thấy danh sách đầy đủ các khách hàng sử dụng cơ sở dữ liệu MySQL tại đây
cơ sở dữ liệu Oracle
Ban đầu, Oracle Database được thiết kế như một hệ quản trị cơ sở dữ liệu quan hệ hướng đối tượng. Nhưng theo thời gian, nó đã trở thành một DBMS đa khối lượng công việc với sự hỗ trợ dữ liệu ở các định dạng như
- quan hệ,
- trong trí nhớ,
- dữ liệu bị phân mảnh,
- cặp khóa/giá trị,
- biểu đồ,
- dữ liệu không gian,
- XML,
- JSON,
- văn bản miễn phí,
- và các loại giấy tờ
Cơ sở dữ liệu Oracle là một cơ sở dữ liệu hội tụ, vì nó có một back-end tích hợp duy nhất và hỗ trợ nhiều mô hình dữ liệu. Nó có thể nằm trên nền tảng điện toán đám mây riêng, công cộng hoặc lai dưới dạng cơ sở dữ liệu đám mây mà khách hàng có thể lưu trữ mà không cần mua phần cứng chuyên dụng
Các biến thể sản phẩm của Cơ sở dữ liệu Oracle
Ở cấp độ đầu vào, chúng tôi có Phiên bản Oracle Express, đi kèm với các tính năng hạn chế như phiên bản miễn phí. Nó chủ yếu được sử dụng cho mục đích học tập
Tiếp theo, chúng ta có Oracle Database Personal Edition, có giá $460. Nó dành cho môi trường một người dùng nhưng cung cấp khả năng tương thích hoàn toàn với các phiên bản khác
Thứ ba, chúng tôi có Cơ sở dữ liệu Oracle Phiên bản tiêu chuẩn 2, có giá bắt đầu từ $350. Đó là lý tưởng để sử dụng bởi các nhóm trong phòng ban hoặc cho các ứng dụng web nhỏ
Ở mức cao cấp nhất, chúng tôi có Oracle Database Enterprise Edition, bắt đầu từ $950 và được xây dựng để hỗ trợ các ứng dụng thiết yếu
Bảng giá đầy đủ có sẵn tại đây và để biết thêm chi tiết, hãy tham khảo phần cơ sở dữ liệu trong Trung tâm trợ giúp của Oracle
Khách hàng chính của cơ sở dữ liệu Oracle
Hàng ngàn công ty trong các ngành dọc khác nhau đang sử dụng Cơ sở dữ liệu Oracle
- Chế tạo. Unior và IFFCO
- Tài chánh. Châu ÁPay
- Chăm sóc sức khỏe. Bệnh viện San Javier
- Giáo dục. Đại học Oxford
- Lòng hiếu khách. Starwood và Kingold
Để có danh sách đầy đủ các khách hàng của Cơ sở dữ liệu Oracle, hãy nhấp vào đây
Các nền tảng được hỗ trợ bởi MySQL và Oracle
mysql 8. 0 và cơ sở dữ liệu Oracle 19c hỗ trợ các nền tảng sau
nền tảng
mysql 8. 0
tiên tri 19c
các cửa sổ
✓
✓
macOS 10
✓
✕
Solaris 11 [SPARC]
✓
✓
Oracle, Doanh nghiệp mũ đỏ, CentOS Linux
✓
✓
Ubuntu, SUSE, Debian Linux
✓
✕
IBM AIX / HP-UX ia64 / Linux trên Hệ thống z
✕
✓
ảo hóa
✓
✓
docker
✓
✓
Truy cập trang web của MySQL để biết danh sách đầy đủ các nền tảng được hỗ trợ, đối với Oracle, hãy truy cập trang web của nó
Sự khác biệt về giới hạn cơ sở dữ liệu giữa MySQL và Oracle
Giới hạn cơ sở dữ liệu rất quan trọng cần xem xét khi chọn cơ sở dữ liệu cho ứng dụng của bạn
Dưới đây là các giới hạn cơ sở dữ liệu cho từng dịch vụ theo tài liệu của Oracle, có các liên kết được cung cấp bên dưới
Đặc trưng
mysql
tiên tri
Kích thước bảng tối đa [mặc định]
256 TB
128TB
Số hàng tối đa
65K
Vô hạn
Số cột tối đa trên mỗi bảng
1017
1000
Số cột được lập chỉ mục tối đa
64
32
Độ dài tối đa của chỉ mục
3.072 byte
Vô hạn
Số lần tham gia tối đa
61
200
Để biết thêm chi tiết về giới hạn cơ sở dữ liệu MySQL, hãy tham khảo chủ đề Tối ưu hóa cấu trúc cơ sở dữ liệu và để biết giới hạn cơ sở dữ liệu Oracle, hãy tham khảo trong tài liệu
Sự khác biệt về khả năng kỹ thuật giữa MySQL và Oracle
Đặc trưng
mysql
tiên tri
Hỗ trợ trả phí
Có, Hỗ trợ cao cấp của Oracle
Có, một số tùy chọn hỗ trợ trả phí
Sử dụng bộ nhớ [RAM]
Thấp [khoảng 1 MB]
Cao [tối thiểu 128 MB]
Sử dụng đĩa tối thiểu
Thấp [1 GB]
Cao [10 GB]
Ngôn ngữ lập trình hỗ trợ
Các ngôn ngữ hiện đại như C/C++, Java, Python, Node. js, v.v.
Các ngôn ngữ hiện đại và kế thừa [bao gồm FORTRAN và COBOL]
Công cụ phát triển
Bàn làm việc MySQL
Oracle Application Express [APEX], Oracle SQL Developer, Oracle Spatial Studio
công cụ quản lý
Bàn làm việc MySQL
Oracle SQL
Hỗ trợ hệ thống nhúng
Có, nó có thể chạy trên các thiết bị IoT
Không, nó không thể chạy trên các thiết bị nhúng
hỗ trợ SQL
Có [với nhiều tiện ích mở rộng và tính năng không phải SQL]
Có [với phần mở rộng PL/SQL độc quyền]
Hỗ trợ giao diện NoSQL
Đúng
Đúng
Kiểu dữ liệu JSON gốc
Đúng
Không
Giao diện API gốc
Đầu nối/ODBC, Đầu nối/J, v.v.
OCI [Giao diện cuộc gọi của Oracle], ODBC, v.v.
Hiệu suất trong bộ nhớ thời gian thực
Có, với công cụ lưu trữ BỘ NHỚ
Có, sử dụng công nghệ Oracle Database In-Memory
Chạy các truy vấn phức tạp
Có, ngay cả trên phần cứng hàng hóa
Có, chỉ trên phần cứng chuyên dụng
ACID/Tính nhất quán trong giao dịch [OLTP]
Có [với công cụ lưu trữ InnoDB]
Đúng
khóa
InnoDB hỗ trợ khóa cấp hàng, trong khi MyISAM chỉ hỗ trợ khóa cấp bảng
Có, nó hỗ trợ một số khóa khác nhau, bao gồm cả khóa cấp hàng
Sự khác biệt về tính năng nâng cao giữa MySQL và Oracle
Bảng dưới đây nêu bật sự khác biệt về tính năng nâng cao giữa cơ sở dữ liệu MySQL và Oracle
Đặc trưng
mysql
tiên tri
Bảo vệ
Đúng
Đúng
Hỗ trợ LDAP/Active Directory
Không
Đúng
Phân tích và lưu trữ dữ liệu [OLAP]
Có, với công cụ lưu trữ MyISAM
Có, nó hỗ trợ phân tích, Dữ liệu lớn và kho dữ liệu
Kiểm toán dựa trên chính sách
Không, nó cung cấp khả năng kiểm tra tối thiểu
Có, cung cấp kiểm toán dựa trên chính sách rộng rãi
phân cụm
Có, sử dụng công nghệ MySQL Cluster, cung cấp khả năng phân cụm và tự động phân mảnh
Có, sử dụng Cụm ứng dụng thực [RAC]
Nhân rộng
Có, có thể sao chép cơ sở dữ liệu và bảng một cách có chọn lọc
Đúng
Sao lưu và phục hồi
Đúng
Có, nó hỗ trợ sao lưu trực tuyến để tránh mất dữ liệu
Cơ sở dữ liệu nhiều người thuê/vùng chứa
Không
Đúng
Khả năng mở rộng web/mở rộng theo chiều ngang
Hệ thống từ nhỏ đến lớn
Hệ thống quy mô vừa và lớn
Tính khả dụng cao
Đúng
Có, thông qua các công nghệ như RAC, Data Guard và Golden Gate
tính di động
Dễ dàng di chuyển
Thách thức di chuyển trên nhiều phần cứng và hệ điều hành
Sự quản lý
Đơn giản, vì nó cung cấp nhiều tính năng tự quản lý
Cần quản trị viên cơ sở dữ liệu lành nghề và chuyên dụng
Sự khác biệt trong các truy vấn SQL giữa MySQL và Oracle
Tạo lược đồ cơ sở dữ liệu
Thông thường, thuật ngữ cơ sở dữ liệu và lược đồ cơ sở dữ liệu được sử dụng thay thế cho nhau trong ngữ cảnh của SQL
Cú pháp được sử dụng để tạo lược đồ cơ sở dữ liệu mới giống nhau cho cả cơ sở dữ liệu MySQL và Oracle
Xem cú pháp dưới đây để bạn tham khảo
CREATE DATABASE
Ở đây, biểu thị đối số đại diện cho tên của lược đồ cơ sở dữ liệu mới sẽ được tạo
Ví dụ: đây là cách bạn tạo cơ sở dữ liệu về khách hàng
Tạo một bảng mới
Hãy xem cách bạn tạo một bảng mới trong mỗi cơ sở dữ liệu
Hãy bắt đầu với MySQL
CREATE TABLE customer [ customer_id int PRIMARY KEY, first_name varchar[50], last_name varchar[50], age int ]
Từ khóa PRIMARY KEY
được sử dụng trong truy vấn SQL để đánh dấu cột là khóa chính. Bảng mới đang được tạo do việc thực thi câu lệnh SQL CREATE TABLE
này
Bây giờ hãy xem một ví dụ về Oracle
CREATE TABLE customer [ customer_id int, first_name varchar[50], last_name varchar[50], age int, CONSTRAINT customer_pk PRIMARY KEY [customer_id] ]
Trong câu lệnh SQL trên, từ khóa CONSTRAINT
đặt cột customer_id
làm KHÓA CHÍNH
Như bạn có thể thấy, sự khác biệt giữa cú pháp được sử dụng trong truy vấn SQL ở trên để xác định khóa chính, được sử dụng để xác định duy nhất một hàng trong cơ sở dữ liệu
Chọn các bản ghi từ bảng
Cú pháp chọn bản ghi từ bảng trong MySQL giống với cú pháp của Oracle
Xem truy vấn dưới đây để bạn tham khảo
Truy vấn SQL ở trên chọn tất cả các cột [ký hiệu là *] trong khi hiển thị các bản ghi từ bảng
CREATE TABLE customer [ customer_id int PRIMARY KEY, first_name varchar[50], last_name varchar[50], age int ]0
Chèn bản ghi vào bảng
Dưới đây là ví dụ truy vấn SQL để chèn một bản ghi vào bảng của cơ sở dữ liệu MySQL
Bạn có thể sử dụng cú pháp tương tự trong Cơ sở dữ liệu Oracle
INSERT INTO customer[customer_id, first_name, last_name, age] VALUES ['001', 'John', 'Smith', 35]
Ở đây, từ khóa
CREATE TABLE customer [ customer_id int PRIMARY KEY, first_name varchar[50], last_name varchar[50], age int ]1 được sử dụng trước dữ liệu biểu thị hàng của bảng. Thực hiện truy vấn SQL này sẽ thêm một bản ghi mới vào bảng
CREATE TABLE customer [ customer_id int PRIMARY KEY, first_name varchar[50], last_name varchar[50], age int ]0
Cập nhật các bản ghi trong bảng
MySQL có cú pháp giống như Oracle để chèn một bản ghi vào bảng
Xem truy vấn SQL bên dưới để biết thêm chi tiết
UPDATE customer SET first_name = "Marry", last_name = "Jones" WHERE customer_id = 1
Ở đây, từ khóa
CREATE TABLE customer [ customer_id int PRIMARY KEY, first_name varchar[50], last_name varchar[50], age int ]3 được sử dụng để đặt giá trị của các cột. Từ khóa
CREATE TABLE customer [ customer_id int PRIMARY KEY, first_name varchar[50], last_name varchar[50], age int ]4 lọc các hàng dựa trên điều kiện trong đó giá trị của
customer_id
là 1Phần kết luận
Như chúng ta đã thấy, cả cơ sở dữ liệu MySQL và Oracle đều có nhiều loại, cung cấp các tùy chọn từ dựa trên đám mây đến miễn phí để phát triển/triển khai/phân phối
Oracle là một cơ sở dữ liệu tiên tiến phù hợp với các trường hợp sử dụng liên quan đến số lượng lớn giao dịch và truy vấn cho kho dữ liệu và ứng dụng Internet. Nó thậm chí có thể giao tiếp với các ngôn ngữ lập trình cũ hơn như COBOL và FORTRAN
Nói chung, để cài đặt cơ sở dữ liệu Oracle, bạn sẽ cần phần cứng chuyên dụng, trong khi MySQL có thể chạy trên phần cứng thông thường
Cơ sở dữ liệu Oracle cung cấp hỗ trợ đầy đủ để chạy ngôn ngữ thủ tục PL/SQL bên trong nó. Ngoài ra, nó đi kèm với APEX, một nền tảng phát triển mã thấp, vì vậy bạn thậm chí có thể không cần cài đặt và quản lý một máy chủ ứng dụng riêng biệt để chạy logic kinh doanh của mình và thực hiện phân tích dữ liệu
Mặt khác, với MySQL, bạn cần các ứng dụng bổ sung để thực hiện phân tích dữ liệu và các máy chủ web riêng biệt để chạy logic kinh doanh của bạn
Cuối cùng, bạn có thể thấy cơ sở dữ liệu Oracle phù hợp hơn để chạy các ứng dụng ERP như SAP hoặc E-Business Suite, vì theo truyền thống, chúng được tối ưu hóa tốt hơn với cơ sở dữ liệu Oracle
Cơ sở dữ liệu MySQL lý tưởng cho các ứng dụng và dịch vụ internet, vì nó dễ quản lý, rất hiệu quả, đáng tin cậy và có thể mở rộng. Hơn nữa, MySQL cũng là một thư viện đa luồng để chạy trên các thiết bị IoT
Tóm lại, cả hai cơ sở dữ liệu đều được thử nghiệm thực tế tại hiện trường;
Để đưa ra lựa chọn đúng đắn, trước tiên bạn nên hiểu chính xác các yêu cầu của các trường hợp sử dụng ứng dụng của mình và đánh giá chúng một cách chi tiết theo các thông số kỹ thuật và chức năng được đề cập trong bài đăng này
Loạt bài viết này phân tích cách các cơ sở dữ liệu cụ thể xếp chồng lên nhau. Chúng tôi đã đề cập đến các so sánh sau đây cho đến nay