OBJECT

Trong giải pháp phát triển vận dụng website bây giờ chắc hẳn các bạn vẫn quen với với trường đoản cú khóa ORM(Object Relational Mapping). lúc nhưng mà thời đại của những framework ứng cùng với những ngữ điệu đang đăng vương một phương pháp trẻ trung và tràn đầy năng lượng, ORM gần như là sự lựa chọn tuyệt đối hoàn hảo của các công ty phát triển hiện thời.quý khách đã xem: Orm là gì

ORM giúp họ thuận tiện thao tác làm việc cùng với tài liệu vớiDatabase rộng, giúp chúng ta dễ code, dễ maintain hơn . . . Ở nội dung bài viết này tôi sẽ ra mắt tầm thường về ORM, đi sâu vào đối chiếu những điểm điểm mạnh, yếu điểm cùng khi nào vận dụng chúng trong những dự án công trình thực tiễn.

Bạn đang xem: Object

Để cho dễ dàng theo dõi từ bỏ thời đặc điểm này của bài viết tôi xin được dùng ORM nạm cho các trường đoản cú Object Relational Mapping


*

1. ORM là gì ?

Theo Wikipedia:

Object-relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. There are both không tính phí and commercial packages available that perkhung object-relational mapping, although some programmers opt to construct their own ORM tools.

Hiểu một biện pháp dễ dàng thì

ORM là 1 trong những nghệ thuật lập trình sẵn góp ánh xạ các record tài liệu vào hệ quản ngại trị cửa hàng dữ liệu thanh lịch dạng đối tượng người tiêu dùng đã tư tưởng trong những class - một khái niệm phổ biến được sử dụng vào toàn bộ những ngôn từ hiện đại ngày này như: Java, PHPhường, Ruby. Quý Khách rất có thể vận dụng kĩ thật này với bất kể dự án nào mình thích.

*

Theo Martin Fowler tất cả hai patterns được áp dụng cho các phương pháp xây cất ORM khác nhau.

Một sốORMdanh tiếng thực hiện Active Record hoàn toàn có thể nói tên là: Eloquent, CachePHPhường., JOOQ, TOPLINK


*

*

Một số ORM danh tiếng sử dụng Data Mapper như: Doctrine, Hibernate, SqlAlchemy

2. ORM hoạt động ra sao ?

nổi trội cơ bản của ORM là gói gọn gàng CSDL trong một object. 1 phần của object đã chứa data, cùng phần còn sót lại lo Việc data xử trí nlỗi nào và đổi thay nó thành cơ sở dữ liệu quan hệ tình dục.

ORM xử lý sự việc đồng bộ giữa phong cách dữ liệu trả về khác nhau. Một mặt là cửa hàng dữ liệu, nghỉ ngơi đó tài liệu được biểu lộ bên dưới dạng tập hòa hợp những phiên bản ghi. Một bên là các đối tượng, ở kia tài liệu được hiện lên dưới dạng object


*

3. Ưu và điểm yếu ORM

Ví dụ về việc tìm kiếm list phiên bản ghi cùng với điều kiện với sql thuần

book_list = new List();sql = "SELECT * FROM library WHERE author = "Linus"";data = query(sql);while (row = data.next()) book = new Book(); book.setAuthor(row.get("author"); book_menu.add(book);Với ORM, nó sẽ đơn giản và dễ dàng nhỏng sau

book_danh mục = BookTable.query(author="Linus");Từ ví dụ đơn giản trên họ thuận tiện nhận thấy những ưu điểm sau khi sử dụng ORM

Ưu điểm

Rất những thiết bị được tiến hành "trường đoản cú động", liên quan cho tới Việc up date tài liệu, vào ví dụ bên trên bọn họ ko bắt buộc quan tâm tới sự việc cần sử dụng vòng để convert data trường đoản cú mysql ra, Chỉ cần biết nguồn vào là keywords đầu ra output trả lại 1 list các quyển sách bao gồm author=LinusViệc thực hiện ORM có tác dụng các bạn cần phải viết code theo mô hình MVC, khiến code của công ty dễ dàng sửa đổi, gia hạn hơn.Bạn ko cần biết không ít về MYSQL, bạn vẫn có thể tiếp cận thuận tiện với ORM.Model k ràng buộc ngặt nghèo với áp dụng, xuất xắc nói theo cách khác, Model thì linh hoạt, bởi vậy bạn có thể thay đổi hoặc sử dụng nó bất kể nơi nàoORM được cho phép các bạn tận dụng ưu điểm của OOPhường. nhỏng thừa kế dữ liệu mà không phải nhức đầu

Nhược điểm

Với từng framework đã có 1 tlỗi viện ORM khác biệt, tất nhiên là các bạn yêu cầu mất thời gian học nó. Và do chúng là tlỗi viện phải sẽ khá "nặng".Performance ổn so với các tróc nã vấn thường thì, tuy thế Raw Squốc lộ sẽ luôn luôn làm tốt hơn cùng với những dự án béo.ORM được coi là abstracts của DB. Nếu các bạn ko quyên tâm tới những gì đích thực xảy ra Lúc áp dụng ORM. Nó có thể là loại mồi nhử cùng với hầu như bài tân oán N + 1 query.4 Đánh giá performance của ORM

Nlỗi ở vị trí điểm yếu bản thân bao gồm nói ORM sẽ sở hữu được performance lờ lững hơn so với việc thực hiện raw sql. Dưới đây là một những thống kê cùng với Eloquent ORM của Laravel và raw mysql.Môi trường:

CPU: Quad core Hãng Intel Xeon E31220Network: BroaNetXtreme BCM5722 Gigabit EthePCI ExpressMemory: 8.0 GBHDD: 2000.4 GBOperating System: CentOS

4.1 Insert

Ở trên đây những đơn vị thí điểm đã insert số lượng bài viết khác nhau trường đoản cú 1000 mang đến 10000 cho tất cả 2 kĩ thuật trong những vòng lặp.

Xem thêm: Hướng Dẫn Cách Crack Office 2007 Không Dùng Key, Tải Và Cài Đặt Office 2007 Crack Key

Eloquent ORM

Số lượtSố bài bác viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)
11000665,25619,5585,6623,539,97
220001150114011101133,3trăng tròn,81
330001490149014201466,740,41
440001770179016701743,364,29
550002080209022202130,078,10
660002540251025602536,725,16
770002930301030803006,775,05
8800033603520338034trăng tròn,087,17
990003800390038803860,052,91
10100004270436043904340,062,44

Raw SQL

Số lượtSố bài xích viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)
11000195,81189,62180,1188,57,91
22000322,78335,64307,01321,814,33
33000413,4437,62458,24436,422,44
44000598,87567,57559,01575,2đôi mươi,98
55000725,5740,94780,15748,928,17
66000867,93869,12891,27876,113,14
770001000996,14949,05981,728,36
880001150112011301133,315,27
990001190127012201226,740,41
101000014301380145014đôi mươi,036,05

Từ bảng trên ta gồm biểu đồ gia dụng nlỗi sau


4.2 Update

Eloquent ORM

Số lượtSố bài xích viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)
11000305,59316,06297,93306,59,10
22000522,06565,12543,43543,521,53
33000778,4772,33790,52780,49,26
440001040101010801043,335,11
550001290124012601263,325,16
660002540251025602536,725,16
770002930301030803006,775,05
880003360352033803420,087,17
990003800390038803860,052,91
10100004270436043904340,062,44

Raw SQL

Số lượtSố bài xích viếtLượt 1 (ms)Lượt 2(ms)Lượt 3 (ms)Trung bình cùng (ms)Sai lệch (ms)
11000195,81189,62180,1188,57,91
22000322,78335,64307,01321,814,33
33000413,4437,62458,24436,422,44
44000598,87567,57559,01575,2trăng tròn,98
55000725,5740,94780,15748,928,17
66000867,93869,12891,27876,113,14
770001000996,14949,05981,728,36
880001150112011301133,315,27
990001190127012201226,740,41
10100001430138014501420,036,05

Từ bảng trên ta tất cả biều đồ sau

4.3 Select

Ở phía trên các trang bị nghiệm chia làm 3 lượt

4.4 Đánh giá bán và phân tích

Từ các số liệu trên hoàn toàn có thể thuận tiện thấy được performance của raw sql rõ ràng xuất sắc hơn đối với ORM trong tất cả những hành vi select, insert, update.

Lí vày tại chỗ này là: ORM đề xuất thời gian chế tạo ra Model instances, tạo thành những property mang lại mã sản phẩm với transform đối tượng người tiêu dùng model thành tài liệu quan hệ trước lúc thực hiện câu hỏi giao tiếp cùng với database. Tất cả số đông gì phía sau nó là Laravel đã convert từng code Eloquent ORM thành câu lệnh Squốc lộ tương thích với kế tiếp thực hiện trên tầng database và trả lại kết quả lại tầng application. Vì vậy thời gian nhằm thực thi 1 tác vụ luôn mất quá nhiều thời hạn rộng đối với bài toán cần sử dụng raw sql.

Nhưng khoan, chớ gấp nhìn hầu hết số lượng bên trên nhưng mà vội nói ORM là đồ vứt đi.

Trong thực tiễn không người nào select vài ngàn bạn dạng ghi, xuất xắc triển khai câu hỏi tạo thành vài ba ngàn bạn dạng ghi vào một cơ hội.

Tức là lúc con số phiên bản ghi càng ít thì độ chênh lênh về công suất giảm đi đáng kể. Lúc đó thêm vào đó Việc áp dụng biện pháp kỹ năng cabít của ORM khiến cho ứng dụng của khách hàng cũng trợ thời đồng ý được đối với phần đông tác dụng về vận tốc vạc tiển ứng dụng(thời gian phát triển), sa thải câu hỏi thực hiện code lặp đi tái diễn, bảo mật tốt rộng vào nhiều đồ vật hoàn hảo khác nữa.

5. Tổng kết

Tóm lại, đi xuyên suốt cả bài viết, tôi đã diễn đạt cách hoạt động của ORM, nêu những điểm ưu điểm và điểm yếu kém của ORM. Việc có phải sử dụng ORMhay không vẫn chính là đề tài tranh cãi chưa tồn tại hồi kết.

Cảm ơn chúng ta sẽ theo dõi nội dung bài viết bên trên, vào bài viết tất cả tìm hiểu thêm từ một vài mối cung cấp.