0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Tổng Hợp 30 Câu Hỏi Phỏng Vấn MySQL Thường Gặp - Hướng Dẫn Chi Tiết

Đăng vào 4 ngày trước

• 6 phút đọc

A. Các Câu Hỏi MySQL Dành Cho Người Mới Bắt Đầu:

  1. MySQL là gì?

    • MySQL là hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dùng Structured Query Language (SQL) để quản lý và thao tác dữ liệu được lưu trữ trong cơ sở dữ liệu.
  2. Những tính năng chính của MySQL là gì?

    • MySQL có các tính năng nổi bật như mã nguồn mở, hỗ trợ đa nền tảng, hiệu suất cao, khả năng xử lý truy vấn phức tạp, tính năng bảo mật tốt, tuân thủ ACID, khả năng mở rộng, cùng với tính năng replication và clustering.
  3. Cơ sở dữ liệu quan hệ là gì?

    • Đây là kiểu cơ sở dữ liệu lưu trữ thông tin trong các bảng với hàng và cột, mỗi bảng có một khóa duy nhất. Mối quan hệ giữa các bảng được thiết lập qua foreign keys.
  4. SQL là gì?

    • SQL (Structured Query Language) là ngôn ngữ lập trình tiêu chuẩn dùng để quản lý và thao tác với cơ sở dữ liệu quan hệ, bao gồm việc thực hiện truy vấn, chèn, cập nhật, và xóa dữ liệu.
  5. Các loại dữ liệu trong MySQL bao gồm những gì?

    • MySQL hỗ trợ các loại dữ liệu như:
      • Numeric: INT, FLOAT, DOUBLE, DECIMAL
      • String: VARCHAR, TEXT, CHAR
      • Date and Time: DATE, DATETIME, TIMESTAMP, TIME
      • Binary: BLOB, BINARY
  6. Primary key là gì?

    • Primary key là một định danh duy nhất cho một bản ghi trong bảng, đảm bảo không có giá trị trùng lặp và mỗi bảng chỉ có một primary key.
  7. Foreign key là gì?

    • Foreign key là một trường dùng để xác định một hàng trong bảng khác, tạo liên kết giữa hai bảng và đảm bảo tính toàn vẹn tham chiếu.
  8. Sự khác biệt giữa CHARVARCHAR là gì?

    • CHAR là kiểu chuỗi cố định, còn VARCHAR có độ dài thay đổi. CHAR thích hợp cho chuỗi có độ dài cố định, trong khi VARCHAR tiết kiệm bộ nhớ hơn với độ dài thay đổi.
  9. AUTO_INCREMENT trong MySQL là gì?

    • Đây là tính năng tự động tạo định danh duy nhất cho các bản ghi mới, thường áp dụng cho các cột primary key.
  10. JOIN trong SQL là gì?

  • JOIN kết hợp các hàng từ hai hoặc nhiều bảng dựa trên một cột liên quan. Các loại JOIN bao gồm INNER JOIN, LEFT JOIN, RIGHT JOIN, và FULL JOIN.
  1. INNER JOIN là gì?
  • INNER JOIN trả về chỉ các hàng có giá trị trùng khớp trong cả hai bảng.
  1. LEFT JOIN là gì?
  • LEFT JOIN trả về tất cả các hàng từ bảng bên trái và các hàng khớp từ bảng bên phải, với giá trị NULL cho các cột không khớp.
  1. UNION trong SQL là gì?
  • UNION kết hợp các tập kết quả từ hai hoặc nhiều truy vấn SELECT, đồng thời loại bỏ các hàng trùng lặp.
  1. Sự khác biệt giữa UNIONUNION ALL là gì?
  • UNION loại bỏ các hàng trùng lặp, trong khi UNION ALL bao gồm tất cả các hàng, kể cả trùng lặp.
  1. GROUP BY là gì?
  • GROUP BY nhóm các hàng có cùng giá trị vào các nhóm, thường kết hợp với các hàm tổng hợp như SUM(), AVG(), COUNT(), MIN(), và MAX().

B. Các Câu Hỏi MySQL Ở Cấp Độ Trung Bình:

  1. Index trong MySQL là gì?

    • Index là cấu trúc dữ liệu giúp cải thiện tốc độ truy xuất dữ liệu trong bảng mà không cần quét toàn bộ bảng.
  2. Các loại index trong MySQL là gì?

    • Các loại index phổ biến trong MySQL bao gồm:
      • Primary Index: Tạo cho primary keys.
      • Unique Index: Đảm bảo mỗi giá trị trong cột được index là duy nhất.
      • Full-text Index: Dùng để tìm kiếm văn bản.
      • Composite Index: Index nhiều cột.
  3. Normalization là gì?

    • Quá trình tổ chức bảng để giảm thiểu dữ liệu dư thừa và cải thiện tính toàn vẹn, thường chia nhỏ bảng lớn thành các bảng nhỏ hơn liên quan.
  4. Denormalization là gì?

    • Kết hợp các bảng để giảm số lượng JOIN và cải thiện hiệu suất truy vấn.
  5. HAVING trong SQL là gì?

    • HAVING lọc bản ghi sau khi tổng hợp, thường đi kèm với GROUP BY, tương tự như WHERE nhưng áp dụng sau khi có kết quả tổng hợp.
  6. Stored procedure là gì?

    • Tập hợp các câu lệnh SQL có thể thực thi như một đơn vị, được lưu trữ trong cơ sở dữ liệu và có thể được gọi bằng tên.
  7. Trigger trong MySQL là gì?

    • Trigger là các câu lệnh SQL tự động thực thi khi một sự kiện (INSERT, UPDATE, DELETE) xảy ra trên một bảng.
  8. View trong MySQL là gì?

    • View là bảng ảo dựa trên kết quả của một truy vấn SELECT, mà không lưu trữ dữ liệu vật lý.
  9. Transaction trong MySQL là gì?

    • Transaction là chuỗi các câu lệnh SQL thực thi như một đơn vị. Nó tuân theo thuộc tính ACID (Atomicity, Consistency, Isolation, Durability).
  10. Thuộc tính ACID là gì?

  • Atomicity: Tất cả thao tác đều thực hiện hoặc không.
    • Consistency: Đưa CSDL từ trạng thái hợp lệ này sang trạng thái hợp lệ khác.
    • Isolation: Transactions không can thiệp lẫn nhau.
    • Durability: Khi đã cam kết, các thay đổi là vĩnh viễn.

C. Các Câu Hỏi MySQL Ở Cấp Độ Cao:

  1. Replication trong MySQL là gì?

    • Replication là quá trình sao chép dữ liệu từ một MySQL server (master) sang một hoặc nhiều servers (slaves) để tạo ra sự dư thừa và cân bằng tải.
  2. Các loại replication trong MySQL là gì?

    • Master-Slave Replication: Dữ liệu ghi vào master và sao chép sang slaves.
      • Master-Master Replication: Cả hai servers đều có thể làm master và sao chép qua lại.
      • Group Replication: Replication multi-master cho các MySQL clusters có tính sẵn sàng cao.
  3. InnoDB storage engine là gì?

    • InnoDB là storage engine mặc định trong MySQL, cung cấp hỗ trợ cho các giao dịch tuân thủ ACID, foreign keys và khôi phục sau sự cố.
  4. Sự khác biệt giữa DELETE, TRUNCATE, và DROP là gì?

    • DELETE: Xóa hàng theo điều kiện, có thể hoàn tác.
      • TRUNCATE: Xóa tất cả hàng nhưng giữ lại cấu trúc, không thể hoàn tác.
      • DROP: Xóa toàn bộ bảng và cấu trúc, không thể hoàn tác.
  5. Làm thế nào để tối ưu hóa một truy vấn chậm trong MySQL?

    • Các kỹ thuật bao gồm sử dụng indexing, phân tích kế hoạch thực thi truy vấn (EXPLAIN), viết lại truy vấn cho hiệu quả hơn, sử dụng JOIN thay vì subqueries, tránh SELECT *, và đảm bảo tài nguyên phần cứng phù hợp.

source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào