0

TỔNG HỢP 30 CÂU HỎI PHỎNG VẤN MYSQL THƯỜNG GẶP

A. Beginner-Level MySQL Questions:

  1. MySQL là gì?

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

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

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

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

    • 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. Nó đảm bảo rằng không có giá trị trùng lặp trong cột primary key, và mỗi bảng chỉ có một primary key.
  7. Foreign key là gì?

    • Foreign key là một trường (hoặc tập hợp các trường) trong một bảng dùng để xác định duy nhất một hàng của bảng khác, thiết lập 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ó độ dài cố định, trong khi VARCHAR là kiểu chuỗi có độ dài biến đổi. CHAR được dùng khi độ dài của chuỗi có thể dự đoán trước, trong khi VARCHAR tiết kiệm bộ nhớ hơn với các độ dài thay đổi.
  9. AUTO_INCREMENT trong MySQL là gì?

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

    • JOIN được sử dụng để 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.
  11. INNER JOIN là gì?

    • INNER JOIN chỉ trả về các hàng có giá trị trùng khớp trong cả hai bảng được kết hợp.
  12. 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. Nếu không có hàng nào khớp, các giá trị NULL sẽ được trả về cho các cột từ bảng bên phải.
  13. UNION trong SQL là gì?

    • UNION kết hợp các tập kết quả của hai hoặc nhiều truy vấn SELECT, loại bỏ các hàng trùng lặp giữa các truy vấn. Các cột trong tất cả các truy vấn SELECT phải có cùng số lượng và kiểu dữ liệu.
  14. 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 trùng lặp trong kết quả kết hợp.
  15. GROUP BY là gì?

    • GROUP BY nhóm các hàng có cùng giá trị vào các nhóm tóm tắt, thường được sử dụng với các hàm tổng hợp như SUM(), AVG(), COUNT(), MIN(), và MAX().

B. Intermediate-Level MySQL Questions:

  1. Index trong MySQL là gì?

    • Index là một cấu trúc dữ liệu giúp cải thiện tốc độ của các thao tác truy xuất dữ liệu trên một bảng. Nó giúp nhanh chóng xác định dữ liệu mà không cần quét toàn bộ bảng.
  2. Các loại indexes khác nhau trong MySQL là gì?

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

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

    • Denormalization là quá trình kết hợp các bảng để giảm số lượng các JOIN và cải thiện hiệu suất truy vấn, thường được sử dụng trong các ứng dụng có nhiều truy vấn đọc.
  5. HAVING trong SQL là gì?

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

    • Stored procedure là một tập hợp các câu lệnh SQL có thể được thực thi như một đơn vị duy nhất. Nó được lưu trữ trong cơ sở dữ liệu và có thể được gọi bằng một tên cụ thể, thường được dùng để đóng gói các logic phức tạp.
  7. Trigger trong MySQL là gì?

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

    • View là một bảng ảo dựa trên kết quả của một truy vấn SELECT. Nó không lưu trữ dữ liệu vật lý mà cung cấp một cách để đơn giản hóa các truy vấn phức tạp.
  9. Transaction trong MySQL là gì?

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

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

C. Advanced-Level MySQL Questions:

  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 được 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 dữ liệu lẫn nhau.
    • 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 các hàng khỏi một bảng dựa trên một điều kiện. Có thể hoàn tác.
    • TRUNCATE: Xóa tất cả các hàng khỏi một bả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, bao gồm cả 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 đúng cách, phân tích kế hoạch thực thi truy vấn (EXPLAIN), viết lại các 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.

All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí