View profile

#212 - Tối ưu hóa query trong Postgres

Grokking Vietnam
Grokking Vietnam
Trong số này, mời bạn đọc tìm hiểu về:
  • 10 nguyên tắc sử dụng Apache Airflow để tránh trình trạng scheduling và job logic bị phụ thuộc lẫn nhau;
  • Cách tiến hành thay đổi quy mô lớn bằng kĩ thuật branch by abstraction;
  • Nhược điểm của Postgres Planner và cách Orca tự động tối ưu hoá query trong cơ sở dữ liệu phân tán;
  • Lời giải đề bài tuần trước: Smallest string with swaps;
  • Đề bài tuần này: Trapping rain water.

Những bài viết hay
Góc Database
Orca: A Modular Query Optimizer Architecture for VMware Greenplum (Venkatesh Raghavan)
Orca: A Modular Query Optimizer Architecture for VMware Greenplum (Venkatesh Raghavan)
Trong các hệ thống cơ sở dữ liệu quan hệ (relational database) truyền thống, ta có thể xem Storage Engine và Query Engine là “linh hồn” của cơ sở dữ liệu.
Khi người dùng submit một query (câu lệnh truy vấn), query đó sẽ ứng với rất nhiều phiên bản Query Execution Plan. Một query phức tạp có khi sẽ sinh ra vài trăm nghìn biến thể khác nhau của Execution Plan. Việc sinh ra các biến thể phù hợp đã khó, làm sao để chọn plan trong một thời gian ngắn lại còn khó hơn. Chính vì vậy, việc cải tiến bộ sinh Execution Plan cũng như tự động tối ưu hoá các query là một trong các bài toán mới của ngành Database hiện đại.
Góc Data kỳ này mời các bạn cùng tìm hiểu về nhược điểm của Postgres Planner cũng như những cải tiến trong Orca, thành phần chịu trách nhiệm tối ưu hoá query được sử dụng trong Greenplum, một cơ sở dữ liệu phân tán xây dựng trên nền tảng PostgreSQL.
(by n^4)
Góc Lập Trình
Đề tuần này: Trapping Rain Water
Lời giải đề bài tuần trước:
Lời giải:
Đề bài đưa ra một chuỗi ký tự cố định, và một mảng bao gồm các cặp số tự nhiên. Mỗi cặp số tự nhiên biểu thị cho vị trí của 2 ký tự có thể đổi chỗ cho nhau. Đề bài yêu cầu tìm chuỗi ký tự nhỏ nhất sau khi thực hiện tùy ý các bước đổi chỗ.
Ta thấy rằng khi có 2 cặp vị trí liên kết với nhau (tức là có 1 vị trí trùng nhau), ta có thể tùy ý đổi chỗ tất cả các kí tự trong 2 cặp vị trí đó.
Ví dụ: (1,2), (1,5) –> có thể tùy ý đổi chỗ vị trí của 3 ký thứ 1, 2 và 5.
Gọi nhóm các ký tự như trên là một nhóm liên kết, có thể nhận ra hướng giải cho bài toán này là tìm tất cả các nhóm liên kết, sau đó sắp xếp lại các kí tự trong từng nhóm theo thứ tự tăng dần.
Để tìm các nhóm ký tự liên kết với nhau, ta có thể sử dụng Depth First Search, Breadth First Search hoặc Union-Find. Mời các bạn tham khảo một lời giải dựa trên Union-Find tại link dưới đây.
(by ndaadn)
Có thể bạn chưa biết
Được xuất bản vào tháng 3 năm 1990, cuốn sách Introduction to Algorithms đã trở thành một trong những cuốn sách khoa học máy tính được trích dẫn nhiều nhất với hơn 10 nghìn lượt trích dẫn trên citerseerx, đồng thời cũng bán được hơn 1 triệu bản trên toàn thế giới. Ấn bản thứ 4 sẽ ra mắt vào tháng 4 năm nay với nhiều cập nhật mới.
(by lpv)
Code & Tools
  • Polynote: Notebook được phát triển bởi Netflix, tối ưu cho Scala, đồng thời tích hợp Apache Spark.
Góc Sponsors
Fossil Việt Nam, tiền thân là Misfit, giữ vị thế là Trung tâm Nghiên cứu và Phát triển Công nghệ Thiết bị đeo thông minh trực thuộc Fossil Group. Từ những ngày đầu thành lập, đội ngũ kỹ sư Việt đã thiết kế và xây dựng hệ sinh thái thiết bị đeo thông minh phục vụ cuộc sống của hàng triệu người toàn cầu. Chúng tôi tự hào là những nhà đổi mới luôn bứt phá giới hạn của công nghệ và thời trang, tập trung phát triển 3 nhóm sản phẩm chủ lực: thiết bị, ứng dụng, và dữ liệu trên đám mây.
ĐIỀU FOSSIL TỰ TIN MANG ĐẾN CHO BẠN?
  • Tham gia nghiên cứu và phát triển Thiết bị đeo thông minh hàng triệu người dùng trên toàn thế giới. Với Fossil, mỗi việc bạn làm đều có thể mang lại thay đổi cho cuộc sống của rất nhiều người.
  • Lộ trình nghề nghiệp đa dạng, bất kể bạn muốn quản lý đội ngũ hay tập trung phát triển chuyên môn kỹ thuật.
  • Cơ hội làm việc và học hỏi từ các kỹ sư Google, Qualcomm, Citizen, v.v.
  • Bảo hiểm sức khỏe cao cấp, thu nhập và phúc lợi cạnh tranh mang đến trải nghiệm làm việc toàn diện nhất.
  • Môi trường làm việc linh hoạt để bạn thỏa sức học hỏi, phát triển và tạo ra tác động tích cực!
Fossil Việt Nam đang mở ra cơ hội với hàng loạt vị trí hấp dẫn 
(Cloud Engineer, Android Engineer, Software Architect), mời bạn tham khảo chi tiết công việc tại ĐÂY.
Kết nối với Fossil Việt Nam
Quotes
“The most disastrous thing that you can ever learn is your first programming language.”
― Alan Kay
Bạn đánh giá nội dung số newsletter này thế nào?
(1 = Rất tệ / 5 = Rất tốt)
👎 1 ——-—— 3 —— 4 —— 5 👍
Đánh giá của các bạn sẽ giúp chúng tôi liên tục cải thiện nội dung newsletter!
Did you enjoy this issue? Yes No
Grokking Vietnam
Grokking Vietnam

Cảm ơn bạn đã dành thời gian đọc newsletter kỳ này và chúng tôi hi vọng rằng bạn đã khám phá ra một số điều mới mẻ từ các bài viết trên. Các bạn có thể đọc lại các số cũ tại website newsletter.grokking.org

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.
Viet Nam