Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trực tiếp truy cập cơ sở dữ liệu máy chủ thông qua Ajax (không có PHP hoặc một số trung gian khác)

Ý bạn là, có cơ sở dữ liệu nào hỗ trợ giao thức HTTP không? Vâng, có một số. Bạn có MonetDB / XQuery ( http://monetdb.cwi.nl/XQuery/QuickTour/ XRPC / ) và cơ sở dữ liệu NoSQL như CouchDB ( http://couchdb.apache.org/ ). Bạn cũng có nó trong rdbms-es truyền thống hơn như Oracle (Oracle Application Express dựa trên một máy chủ HTTP tích hợp sẵn, hay còn gọi là dịch vụ APEX http://www.oracle.com/technology/products/database/application_express/index.html ) và MS SQL (Đối tượng lược đồ dịch vụ như http://msdn.microsoft. com / en-us / library / ms190332.aspx và chế độ xem XML, hãy xem http://msdn.microsoft.com/en- us / library / aa286527.aspx )

Nhưng thực sự - bạn nên đặt câu hỏi liệu điều này có thực sự hữu ích hay không.

Ý tôi là, sẽ luôn có một thành phần xử lý HTTP. Bạn có thể có cảm giác rằng thật tốt khi lấy lớp máy chủ web / php ra vì bạn cảm thấy nó thừa và nằm giữa ứng dụng và cơ sở dữ liệu. Nhưng thực sự, các giải pháp tôi vừa đề cập không khác biệt lắm - chúng được gắn thẻ trên cùng một phần mềm, nhưng dữ liệu vẫn phải chảy qua lớp bổ sung đó.

Và bạn có thể tự hỏi liệu điều đó có thực sự có lợi hay không khi có tất cả trong một phần:với một máy chủ web riêng biệt, bạn có thể mở rộng lớp máy chủ web độc lập với máy chủ cơ sở dữ liệu. Hoặc bạn có thể mở rộng lớp cơ sở dữ liệu độc lập với lớp máy chủ web. Nếu tất cả chỉ là một phần mềm, bạn không thể.

Về cơ bản, bằng cách xây dựng máy chủ http vào cơ sở dữ liệu, bạn đang tạo gánh nặng cho máy chủ db với một nhiệm vụ tiêu tốn tài nguyên có thể được sử dụng cho các tác vụ db khác. Bây giờ hãy nghĩ về một trường hợp phổ biến, trong đó bạn đã trả tiền cho một giấy phép cho mỗi bộ xử lý của db của bạn. Bạn có thực sự muốn sử dụng giấy phép đó để db xử lý các yêu cầu HTTP không, khi bạn có thể thực hiện chính xác điều đó với một máy chủ web miễn phí như apache? Ngay cả khi bạn đang sử dụng một sản phẩm cơ sở dữ liệu mềm miễn phí, trong nhiều trường hợp, máy chủ cơ sở dữ liệu là một nút cổ chai. Bạn có thực sự muốn đặt nhiều nhiệm vụ hơn vào đĩa của nó bằng cách xây dựng một máy chủ HTTP vào đó không?

Có một lý do khác khiến tôi nghĩ đó không phải là một ý tưởng hay. Bạn đã đề cập đến XML là định dạng trao đổi dữ liệu. Goody. Nhưng nếu bạn muốn JSON thì sao? Hoặc YAML? Hay có lẽ là CSV đơn giản? Các ngôn ngữ lập trình máy chủ web như PHP, ASP.NET, Perl, và thậm chí cả Java đều có các thư viện rất tốt để giải quyết những việc này. Các ngôn ngữ thủ tục được lưu trữ trong cơ sở dữ liệu điển hình thì không. Tất nhiên, bạn có thể tiến thêm một bước nữa và nói, quái, tại sao không xây dựng nói Java hoặc .NET vào cơ sở dữ liệu, nhưng điều đó lại làm đảo lộn vấn đề - nhiệm vụ của cơ sở dữ liệu là lưu trữ và truy xuất dữ liệu, và thực hiện tốt quan tâm đến dữ liệu trong khi nó được lưu trữ. Xử lý dữ liệu để hiển thị nó cho một ứng dụng không phải là một phần của việc đó. Nếu bạn coi đó là một phần công việc của db, bạn sẽ lấy đi một nguồn quan trọng về tính linh hoạt và khả năng mở rộng của toàn bộ hệ thống. Bạn có thể cảm thấy nó ít tốn kém hơn vì có ít thành phần hơn (tức là máy chủ web / ngôn ngữ kịch bản) để suy nghĩ, nhưng trên thực tế, nó vẫn ở đó, nó chỉ ẩn bên trong phần mềm cơ sở dữ liệu của bạn và hút các tài nguyên có thể đã được sử dụng cho lưu trữ và truy xuất dữ liệu, phân tích cú pháp các truy vấn, v.v.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thời gian lưu trữ MySQL - kiểu dữ liệu?

  2. Chèn nhiều hàng trong mysql

  3. MySQL:Chọn mục nhập ngẫu nhiên, nhưng có trọng lượng đối với các mục nhập nhất định

  4. quá trình mysql không thể bị dừng lại

  5. Tôi không thể lấy biểu mẫu đăng nhập của mình để kết nối tương tác đúng với cơ sở dữ liệu mySQL