H2 Database Engine

Phần mềm chụp màn hình:
H2 Database Engine
Các chi tiết về phần mềm:
Phiên bản: 1.3.189 Cập nhật
Ngày tải lên: 28 Sep 15
Nhà phát triển: H2 Group
Giấy phép: Miễn phí
Phổ biến: 244

Rating: 1.0/5 (Total Votes: 1)

Các gói phần mềm tải đi kèm với tài liệu tiên tiến và mã nguồn của cơ sở dữ liệu.

là gì mới trong phiên bản này:

  • MVStore:. trong một số trường hợp, các khối dữ liệu CLOB / BLOB đã được gỡ bỏ không đúng khi mở một cơ sở dữ liệu
  • MVStore:. cập nhật mà bị ảnh hưởng nhiều hàng đã chậm chạp trong một số trường hợp, nếu có được một chỉ số thứ cấp
  • Sử dụng "runscript" với autocommit vô hiệu hóa có thể dẫn đến một thời gian chờ khóa trên các bảng nội "SYS".
  • Issue 603: có một rò rỉ bộ nhớ khi sử dụng H2 trong một ứng dụng web. Apache Tomcat đăng một thông báo lỗi:. "Các ứng dụng web ... tạo ra một ThreadLocal với phím của loại [org.h2.util.DateTimeUtils $ 1]"
  • Khi sử dụng MVStore, chạy một tập lệnh SQL tạo ra bởi các công cụ phục hồi từ một tập tin PageStore thất bại với một thông báo lỗi lạ (NullPointerException), bây giờ là một thông báo lỗi được hiển thị rõ ràng.
  • Issue 605: với phiên bản 1.4.186, mở ra một cơ sở dữ liệu có thể dẫn đến một vòng lặp vô tận trong LobStorageMap.init
  • .
  • Truy vấn có sử dụng bí danh của bảng cùng nhiều lần bây giờ làm việc. Trước đây, danh sách lựa chọn biểu đã được mở rộng không đúng. Ví dụ:. "* Chọn từ một như x, b là x"
  • Tính năng tương thích MySQL "chèn ... trên trùng lặp cập nhật quan trọng" đã không làm việc với một lược đồ không mặc định.
  • Issue 599:.
  • điều kiện "trong (x, y)" không thể được sử dụng trong danh sách lựa chọn khi sử dụng "nhóm do"
  • Các bộ nhớ cache LIRS có thể phát triển lớn hơn so với bộ nhớ được phân bổ.
  • A mới thực hiện hệ thống tập tin đó lại mở file nếu nó đã đóng cửa do các ứng dụng gọi Thread.interrupt (). Tên tập tin tiền tố "thử lại:". Xin lưu ý nó được khuyến khích mạnh mẽ để tránh gọi Thread.interrupt; đây là một vấn đề đối với các thư viện khác nhau, bao gồm Apache Lucene.
  • MVStore: sử dụng hệ thống tập tin RandomAccessFile nếu tên tập tin bắt đầu với "tập tin:".
  • Cho phép DATEADD để có một giá trị lâu để đếm khi thao tác phần nghìn giây.
  • Khi sử dụng MV_STORE = TRUE và các thiết lập SET CACHE_SIZE, kích thước bộ nhớ cache được đặt không chính xác, do đó, nó là một cách hiệu quả 1024 lần nhỏ hơn nó nên được.
  • Concurrent CREATE TABLE IF ... không tồn tại trong sự hiện diện của MULTI_THREAD = TRUE có thể ném một ngoại lệ
  • .
  • Lỗi Fix trong MVStore khi tạo ra nhiều bảng tạm thời, nơi chúng tôi có thể chạy ra khỏi ID giao dịch.
  • Thêm hỗ trợ cho PostgreSQL STRING_AGG chức năng. Patch của Fred Aquiles.
  • Lỗi Fix trong "jdbc: h2: nioMemFS" isRoot () chức năng. Ngoài ra, kích thước trang được tăng lên đến 64 KB.

là gì mới trong phiên bản 1.3.187:

  • MVStore:. trong một số trường hợp, các khối dữ liệu CLOB / BLOB đã được gỡ bỏ không đúng khi mở một cơ sở dữ liệu
  • MVStore:. cập nhật mà bị ảnh hưởng nhiều hàng đã chậm chạp trong một số trường hợp, nếu có được một chỉ số thứ cấp
  • Sử dụng "runscript" với autocommit vô hiệu hóa có thể dẫn đến một thời gian chờ khóa trên các bảng nội "SYS".
  • Issue 603: có một rò rỉ bộ nhớ khi sử dụng H2 trong một ứng dụng web. Apache Tomcat đăng một thông báo lỗi:. "Các ứng dụng web ... tạo ra một ThreadLocal với phím của loại [org.h2.util.DateTimeUtils $ 1]"
  • Khi sử dụng MVStore, chạy một tập lệnh SQL tạo ra bởi các công cụ phục hồi từ một tập tin PageStore thất bại với một thông báo lỗi lạ (NullPointerException), bây giờ là một thông báo lỗi được hiển thị rõ ràng.
  • Issue 605: với phiên bản 1.4.186, mở ra một cơ sở dữ liệu có thể dẫn đến một vòng lặp vô tận trong LobStorageMap.init
  • .
  • Truy vấn có sử dụng bí danh của bảng cùng nhiều lần bây giờ làm việc. Trước đây, danh sách lựa chọn biểu đã được mở rộng không đúng. Ví dụ:. "* Chọn từ một như x, b là x"
  • Tính năng tương thích MySQL "chèn ... trên trùng lặp cập nhật quan trọng" đã không làm việc với một lược đồ không mặc định.
  • Issue 599:.
  • điều kiện "trong (x, y)" không thể được sử dụng trong danh sách lựa chọn khi sử dụng "nhóm do"
  • Các bộ nhớ cache LIRS có thể phát triển lớn hơn so với bộ nhớ được phân bổ.
  • A mới thực hiện hệ thống tập tin đó lại mở file nếu nó đã đóng cửa do các ứng dụng gọi Thread.interrupt (). Tên tập tin tiền tố "thử lại:". Xin lưu ý nó được khuyến khích mạnh mẽ để tránh gọi Thread.interrupt; đây là một vấn đề đối với các thư viện khác nhau, bao gồm Apache Lucene.
  • MVStore: sử dụng hệ thống tập tin RandomAccessFile nếu tên tập tin bắt đầu với "tập tin:".
  • Cho phép DATEADD để có một giá trị lâu để đếm khi thao tác phần nghìn giây.
  • Khi sử dụng MV_STORE = TRUE và các thiết lập SET CACHE_SIZE, kích thước bộ nhớ cache được đặt không chính xác, do đó, nó là một cách hiệu quả 1024 lần nhỏ hơn nó nên được.
  • Concurrent CREATE TABLE IF ... không tồn tại trong sự hiện diện của MULTI_THREAD = TRUE có thể ném một ngoại lệ
  • .
  • Lỗi Fix trong MVStore khi tạo ra nhiều bảng tạm thời, nơi chúng tôi có thể chạy ra khỏi ID giao dịch.
  • Thêm hỗ trợ cho PostgreSQL STRING_AGG chức năng. Patch của Fred Aquiles.
  • Lỗi Fix trong "jdbc: h2: nioMemFS" isRoot () chức năng. Ngoài ra, kích thước trang được tăng lên đến 64 KB.

là gì mới trong phiên bản 1.3.186:

  • MVStore: nhập khẩu BLOB và CLOB dữ liệu đôi khi biến mất. Điều này được gây ra bởi một lỗi trong việc so sánh ObjectDataType.
  • Đọc từ một StreamStore giờ ném một IOException nếu các dữ liệu cơ bản không tồn tại.
  • MVStore:. nếu có một ngoại lệ trong khi tiết kiệm, các cửa hàng hiện nay là trong mọi trường hợp ngay lập tức đóng
  • MVStore:. các công cụ kết xuất có thể đi vào một vòng lặp vô tận cho một số tập tin
  • MVStore:. phục hồi cho một cơ sở dữ liệu với nhiều CLOB hoặc BLOB mục nhanh hơn rất nhiều
  • Nhóm bởi với một chọn tên cột alias trích dẫn đã không làm việc. Ví dụ: chọn 1 "a" từ nhóm kép bằng "a"
  • Chế độ Auto-server:. tên máy chủ hiện đang được lưu trữ trong tập tin .lock.db

là gì mới trong phiên bản 1.3.185:

  • MVStore: nhập khẩu BLOB và CLOB dữ liệu đôi khi biến mất. Điều này được gây ra bởi một lỗi trong việc so sánh ObjectDataType.
  • Đọc từ một StreamStore giờ ném một IOException nếu các dữ liệu cơ bản không tồn tại.
  • MVStore:. nếu có một ngoại lệ trong khi tiết kiệm, các cửa hàng hiện nay là trong mọi trường hợp ngay lập tức đóng
  • MVStore:. các công cụ kết xuất có thể đi vào một vòng lặp vô tận cho một số tập tin
  • MVStore:. phục hồi cho một cơ sở dữ liệu với nhiều CLOB hoặc BLOB mục nhanh hơn rất nhiều
  • Nhóm bởi với một chọn tên cột alias trích dẫn đã không làm việc. Ví dụ: chọn 1 "a" từ nhóm kép bằng "a"
  • Chế độ Auto-server:. tên máy chủ hiện đang được lưu trữ trong tập tin .lock.db

là gì mới trong phiên bản 1.3.182:

  • MVStore: thông báo lỗi được cải thiện và khai thác gỗ; hành vi cải thiện nếu có một lỗi khi tuần tự hóa đối tượng.
  • OSGi:. các gói MVStore doanh nghiệp được xuất khẩu
  • Với tùy chọn MVStore, khi sử dụng nhiều chủ đề mà đồng thời tạo ra chỉ số hoặc bảng, đó là tương đối dễ dàng để có được một thời gian chờ khóa trên "SYS" bảng.
  • Khi sử dụng các tùy chọn đa luồng, ngoại trừ "con đường mã bất ngờ" có thể được ném ra, đặc biệt nếu tùy chọn "analyze_auto" đã được thiết lập để một giá trị thấp.
  • Trong chế độ máy chủ, khi đọc từ một CLOB hoặc BLOB, nếu kết nối bị đóng cửa, một NullPointerException có thể được ném thay vì một ngoại lệ nói kết nối được đóng lại.
  • DatabaseMetaData.getProcedures và getProcedureColumns có thể ném một ngoại lệ nếu một lớp người sử dụng được xác định là không có sẵn.
  • Issue 584:. thông báo lỗi cho một định nghĩa chuỗi sai là sai

  • công cụ
  • CSV:. tùy chọn rowSeparator không còn được hỗ trợ, như cùng có thể đạt được với các lineSeparator
  • Giảm dần chỉ số trên bảng MVStore đã không làm việc đúng cách.
  • Issue 579:. Điều kiện về "_rowid_" cột giả đã không sử dụng một chỉ số khi sử dụng MVStore
  • Sửa tài liệu "bù đắp" và "lấy" là từ khóa cũng kể từ phiên bản 1.4.x.
  • Các Long.MIN_VALUE không thể được phân tích cho auto-increment (identity) cột.

là gì mới trong phiên bản 1.3.181:

  • Cải thiện khả năng tương thích MySQL bằng cách hỗ trợ "đồ sử dụng". Cảm ơn rất nhiều để Karl Pietrzak cho các bản vá!
  • Viết cho dấu vết tập tin được bây giờ nhanh hơn, đặc biệt với các mức độ gỡ lỗi.
  • Các tùy chọn cơ sở dữ liệu "defrag_always = true" đã không làm việc với các MVStore.
  • Cú pháp JDBC thoát {'giá trị' ts} đã không giải thích các giá trị như là một dấu thời gian. Điều này cũng cho {d 'giá trị'} (ngày) và {t 'giá trị'} (thời gian). Nhờ Lukas Eder để báo cáo vấn đề này.

  • hệ thống
  • File trừu tượng:. hỗ trợ thay thế các tập tin hiện có sử dụng di chuyển (hiện tại không cho Windows)
  • Những tuyên bố "shutdown chống phân mảnh" bây giờ nén cơ sở dữ liệu (với MVStore). Lệnh này có thể làm giảm kích thước tập tin, và là tương đối nhanh, nhưng không phải là gia tăng.
  • Các MVStore bây giờ tự động làm gọn các cửa hàng trong nền nếu không có đọc hoặc viết hoạt động, mà nên (sau một thời gian, đôi khi khoảng một phút) làm giảm kích thước tập tin. Điều này vẫn còn làm việc trong tiến trình, thông tin phản hồi được hoan nghênh!
  • Thay đổi giá trị mặc định của PAGE_SIZE 2048-4096 để phù hợp chặt chẽ hơn hầu hết các hệ thống tập tin kích thước chặn. (PageStore chỉ; các MVStore đã sử dụng 4096)

là gì mới trong phiên bản 1.3.180:

  • MVStore: các cửa hàng hiện nay là tự động nén tự động cho đến một lúc nào đó, để tránh kích thước tập tin rất lớn. Khu vực này vẫn còn làm việc trong tiến trình.
  • Trình tự của bảng tạm thời (auto-increment hoặc nhận dạng cột) đã tồn tại cách không cần thiết trong tập tin cơ sở dữ liệu, và không được loại bỏ khi tái mở các cơ sở dữ liệu.
  • MVStore: một IndexOutOfBoundsException có thể đôi khi xảy ra MVMap.openVersion khi đồng thời truy cập vào cửa hàng
  • .
  • Các bộ nhớ cache LIRS giờ lại kích thước bản đồ băm nội bộ nếu cần thiết.
  • Tùy chọn vẫn tồn tại lịch sử phiên trong giao diện điều khiển H2.
  • Thêm khách hàng thông tin thuộc tính để có được số lượng các máy chủ hiện đang trong cụm và máy chủ nào mà có sẵn.
  • Lỗi Fix trong việc thay đổi mật khẩu được mã hóa DB mà giữ các tập tin xử lý mở khi sai mật khẩu được cung cấp.

là gì mới trong phiên bản 1.3.179:

  • Truy vấn đệ quy với các hàng nhiều kết quả (nhiều hơn các thiết lập "max_memory_rows") đã không làm việc một cách chính xác.
  • Giấy phép đã thay đổi để MPL 2.0 + EPL 1.0.
  • MVStore: bảng tạm thời từ tập kết quả có thể sống sót lại mở một cơ sở dữ liệu, có thể dẫn đến một ClassCastException
  • .
  • Issue 566: MVStore: duy nhất chỉ số đã được tạo ra sau này đã không làm việc một cách chính xác nếu có hơn 5000 hàng trong bảng
  • .
  • MVStore:.
  • tạo chỉ mục thứ cấp vào bảng kết quả lớn trong thiếu hàng trong các chỉ số
  • Metadata:. mật khẩu của bảng được liên kết với doanh nghiệp là chỉ hiển thị cho người sử dụng quản trị viên
  • Đối với Windows, cơ sở dữ liệu URL của hình thức "jdbc: h2: / test"., nơi được coi tương đối và không làm việc trừ khi hệ thống sở hữu "h2.implicitRelativePath" đã được sử dụng
  • Windows: sử dụng một thư mục cơ sở của "C: /". và tương tự đã không làm việc như mong đợi
  • Follow JDBC đặc điểm kỹ thuật về Thủ tục MetaData, sử dụng P0 như kiểu trả về của thủ tục.
  • Issue 531:. IDENTITY bỏ qua cho cột thêm
  • FileSystem: cải thiện khả năng tương thích ngoại lệ ném với JDK
  • Index không gian: điều chỉnh chi phí nên chúng tôi không sử dụng các chỉ số không gian nếu truy vấn không chứa một nhà điều hành giao cắt
  • .
  • Fix đa luồng bế tắc khi sử dụng một View bao gồm một TableFunction.
  • Lỗi Fix trong phân chia số BigDecimal rất nhỏ.

là gì mới trong phiên bản 1.3.176:

  • Các tập tin phương pháp 'đăng' khóa không còn được ghi nhận, vì nó sẽ không có sẵn trong phiên bản 1.4.
  • Các phương pháp Csv.getInstance tĩnh () đã được gỡ bỏ. Sử dụng các constructor nào thay thế.
  • Tên mặc định dùng cho các Script, RunScript, Shell, và CreateCluster công cụ này không còn là "sa" nhưng một chuỗi rỗng.
  • Các dấu vết ngăn xếp của các ngoại lệ "Các đối tượng đã đóng cửa" không còn đăng nhập mặc định.
  • Nếu một giá trị của một tập kết quả là chính nó là một tập hợp kết quả, kết quả chỉ có thể được đọc một lần.
  • chế Cột cũng có thể nhìn thấy trong quan điểm.
  • Cấp quyền bổ sung cho một vai trò đó đã có một quyền cho bảng đó đã không làm việc.
  • chỉ số không gian:.
  • một vài lỗi đã được cố định (sử dụng hạn chế về không gian trong quan điểm, chuyển giao đối tượng hình học trên TCP / IP, các đối tượng hình học trở lại được sao chép khi cần thiết)
  • Issue 551:. tài liệu datatype là không chính xác
  • Issue 368: ON Duplicate KEY CẬP NHẬT đã không làm việc cho chèn nhiều dòng. Kiểm tra trường hợp từ Angus Macdonald.
  • OSGi:.
  • các javax.tools gói bây giờ được nhập khẩu (như là một tùy chọn)
  • H2 Console:. tự động hoàn tất bây giờ được tắt theo mặc định, nhưng có một phím nóng (Ctrl + Space)
  • H2 Console:. tự động hoàn thành đã không làm việc với các báo cáo đa dòng
  • CLOB và BLOB dữ liệu đã không được ngay lập tức gỡ bỏ sau khi một rollback.
  • Có một API tổng hợp mới có hỗ trợ các kiểu dữ liệu H2 nội (GEOMETRY ví dụ). Cảm ơn rất nhiều để Nicolas Fortin cho các bản vá!
  • ràng buộc toàn vẹn tham chiếu đôi khi sử dụng các chỉ số sai, như vậy là cập nhật một hàng trong bảng tham chiếu không đúng thất bại với một hành vi vi phạm chế.
  • Các dịch Ba Lan đã được hoàn thành và sửa chữa.
  • Issue 545:. Không cần thiết mã trùng lặp đã được gỡ bỏ
  • Các công cụ profiler bây giờ có thể xử lý các file với bãi đề đầy đủ.

là gì mới trong phiên bản 1.3.175:

  • truy vấn Union: lặp lại hàng có thể trả lại nếu phụ truy vấn chứa "tự do"
  • .
  • Các kiểu dữ liệu GEOMETRY hiện đang làm việc cho người sử dụng xác định các chức năng mà trả về một tập kết quả.
  • tương thích PostgreSQL:. các PgServer không hoạt động đúng khi database_to_upper thiết lập đã được thiết lập là false
  • JdbcDataSource: các phương pháp setUrl và getUrl nơi thêm vào như là bí danh cho setURL và getURL. Điều này sẽ giải quyết vấn đề với (kết nối hồ bơi Hikari) HikariCP.
  • Issue 537: H2 Console:. khi tải các lược đồ, không chính xác JDBC gọi nơi ban hành, trong đó gây ra các ngoại lệ "PRECISION Cột không tìm thấy"
  • Cải thiện xử lý hình học (vấn đề 535).
  • Các collation bây giờ có thể được thiết lập trong cơ sở dữ liệu URL, ngay cả khi có bảng dữ liệu, nếu bộ sưu tập cũng giống như việc đối chiếu hiện nay.
  • Cải thiện khả năng tương thích với Oracle CASE KHI và giải mã.
  • Những tuyên bố "thả tất cả các đối tượng" không hoạt động nếu một bảng phụ thuộc vào một cái nhìn qua một hạn chế.
  • truy vấn con hay quan điểm với "tự do", một biểu hiện bí danh không thể được thực hiện do một hồi quy được giới thiệu trong phiên bản 1.3.174.

là gì mới trong phiên bản 1.3.174:

  • Cải thiện chỉ số không gian và kiểu dữ liệu.
  • Issue 467:. OSGi lớp Loader (khả năng tạo ra tham chiếu đến lớp trong ClassLoader khác, ví dụ như trong gói OSGi khác)
  • Truy vấn "nhóm do" có chứa một subquery với một chức năng tổng hợp trả lại kết quả sai trong một số trường hợp.
  • Lỗi Fix trong chỉ số băm độc đáo và không duy nhất mà biểu hiện như kết quả không chính xác khi khóa tìm kiếm là một loại hồng y khác nhau từ khóa chỉ mục bảng. ví dụ nơi mà một trong những là INT và người kia là DÀI
  • Bug:. Những thay đổi trong cấu trúc cơ sở dữ liệu không kết quả trong bộ nhớ cache truy vấn kỳ họp được vô hiệu
  • Tính năng mới từ Davide Cavestro -. cho phép sử dụng công cụ tùy chỉnh Java đối tượng serialization trên một cơ sở cho mỗi DB
  • Khi chạy các công cụ phục hồi vào rất lớn (& gt; 6G) cơ sở dữ liệu, một số thống kê đã được báo cáo với số âm
  • .
  • Thêm một cột vào bảng CONTAINS_UNCOMMITTED PHIÊN siêu dữ liệu, cho phép phát hiện khi phiên rogue tạo các giao dịch lớn.
  • Một số sửa chữa nhỏ để hỗ trợ GEOMETRY, các bản vá lỗi của Nicolas Fortin.
  • Các công cụ BNF và tính năng tự động hoàn chỉnh được xuất khẩu trong OSGi, mà làm cho nó có thể cho các biên tập viên thông minh để làm tự động hoàn chỉnh. Patch từ Nicolas Fortin.
  • Fix thả ALL ĐỐI TƯỢNG và thả SCHEMA trong sự hiện diện của các bảng với các cột phụ thuộc tính.
  • Session-tạm của LOB đôi khi có thể tích lũy, tăng kích thước của tập tin DB cho đến khi tắt máy. Bây giờ họ đang dọn ra ở mọi cam kết.
  • Có một lỗi mà một chỉ số băm với nhiều hơn một cột sẽ được âm thầm chuyển đổi sang một chỉ số thông thường. Bây giờ nó sẽ ném một ngoại lệ.
  • Thống kê Query: tính năng mới mà các cửa hàng mới nhất 100 truy vấn SQL được thực thi và dữ liệu hiệu suất của họ. Hữu ích để theo dõi xuống nặng hiện các truy vấn.
  • Khắc phục sự bế tắc LOB giữa đọc và cập nhật cột LOB.
  • Hỗ trợ JDBC DatabaseMetaData # getClientInfoProperties () phương pháp, trong ý thức trở về một kết quả có sản phẩm nào, để làm cho WebSphere hạnh phúc.
  • Hãy Server # openBrowser tôn trọng các biến môi trường $ BROWSER. Thêm "crom" vào danh sách các trình duyệt cố gắng. Patch từ Felix Kaiser.
  • Fix để org.h2.util.ScriptReader khi xử lý các ý kiến ​​khối không khép kín.
  • Hãy org.h2.util.ScriptReader ném một ngoại lệ tốt hơn khi xử lý các kịch bản vỡ mà tạo ra các câu cực kỳ lớn.

là gì mới trong phiên bản 1.3.173:

  • Hỗ trợ báo cáo rỗng mà chỉ chứa một bình luận.
  • Chế độ Server:. nếu có một lỗi trong khi đọc một LOB, phiên đã bị đóng cửa trong một số trường hợp
  • Issue 463:. tên Driver và phiên bản hiện tại là như nhau trong OsgiDataSourceFactory và JdbcDatabaseMetaData
  • JaQu:. Các kiểu dữ liệu VARCHAR tại là (một lần nữa) được sử dụng cho Strings (không còn văn bản, trừ khi thiết lập một cách rõ ràng)
  • Đối với bộ nhớ trong cơ sở dữ liệu, tạo ra một chỉ mục trên một CLOB hoặc BLOB cột không còn được hỗ trợ. Điều này là để đơn giản hóa các MVTableEngine.
  • cột mới "information_schema.tables.row_count_estimate"
  • .
  • Issue 468: trunc (timestamp) có thể trả về giá trị sai (12 giờ), và trunc (số) ném một NullPointerException
  • .
  • Các trunc biểu thức (số) đã ném một NullPointerException.
  • Cố định một bế tắc khi cập nhật LOB của đồng thời. Xem TestLob.testDeadlock2 ().
  • Cố định một bế tắc liên quan đến rất lớn bộ kết quả tạm thời.
  • Thêm "-list" dòng lệnh tùy chọn để Shell công cụ để kết quả-list-mode có thể được kích hoạt khi đọc từ một tập tin.

Phần mềm tương tự

Medoo
Medoo

10 Feb 16

IP2Location
IP2Location

14 Apr 15

Neo4j
Neo4j

26 Jul 16

Ý kiến ​​để H2 Database Engine

Bình luận không
Nhập bình luận
Bật hình ảnh!
Tìm kiếm theo chủ đề