2009-04-20 27 views
11

Lợi ích của việc sử dụng kiểu dữ liệu "xml" so với lưu trữ nội dung xml bên trong kiểu dữ liệu "văn bản" là gì?Postgres XML datatype

Tôi có thể truy vấn một số thuộc tính hoặc thành phần xml cụ thể không?

Còn hiệu suất lập chỉ mục và truy vấn thì sao?

Bên cạnh hướng dẫn sử dụng postgresql, bạn có thể chỉ cho tôi những nguồn trực tuyến nào khác?

Trả lời

9

nói chung, những lợi ích là những người giống như đối với bất kỳ kiểu dữ liệu khác và tại sao bạn có các loại dữ liệu khác ngoài văn bản ở tất cả:

  • Tính toàn vẹn của dữ liệu
    Bạn chỉ có thể lưu trữ các giá trị XML hợp lệ (tốt, được hình thành) hợp lệ trong các cột thuộc loại xml.
  • Loại an toàn
    Bạn chỉ có thể thực hiện các thao tác trên các giá trị XML hợp lý cho XML.

Một ví dụ là chức năng xpath() (XML Path Language), chỉ hoạt động trên các giá trị loại xml, chứ không phải văn bản.

Đặc điểm hiệu suất lập chỉ mục và truy vấn không tốt hơn hoặc tệ hơn so với loại văn bản hiện tại.

14

Ngay bây giờ, điều lớn nhất bạn nhận được từ các trường XML trên văn bản thô là XPath. Vì vậy, nếu bạn có một cái gì đó tương tự như

CREATE TABLE pages (id int, html xml); 

bạn có thể nhận tiêu đề của trang 4 bởi

SELECT xpath('/html/head/title/text()', html) FROM pages WHERE id = 4; 

Ngay bây giờ hỗ trợ XML là khá hạn chế, nhưng đã được cải tiến rất nhiều trong 8.3, tài liệu hiện đang ở link text