MySQL TempDB

Cơ sở dữ liệu tempdb là cơ sở dữ liệu hệ thống chứa nhiều đối tượng, bao gồm bảng tạm thời, thủ tục được lưu trữ, v.v. Trong các phiên bản của mình, bạn có thể thực hiện các thao tác thông thường trên cơ sở dữ liệu này

Bạn có thể quản lý cơ sở dữ liệu tempdb của phiên bản của mình theo cách đáp ứng nhu cầu của bạn

Cơ sở dữ liệu tempdb được tạo lại mỗi khi một phiên bản được khởi động lại. Để tránh mất quyền của người dùng, Cloud SQL cung cấp quyền cho người dùng sqlserver sau khi khởi động lại phiên bản

Tổng quan

Người dùng sqlserver có quyền KIỂM SOÁT để quản lý các tùy chọn cơ sở dữ liệu tempdb. Ngoài ra, người dùng có thể cấp quyền cho người dùng khác

Xem thông tin chung về quản lý cơ sở dữ liệu tempdb

Quản lý tệp tempdb

Sau khi bạn kết nối với một phiên bản, người dùng sqlserver có thể quản lý các tệp tempdb

Số lượng tệp

Người dùng có quyền KIỂM SOÁT trên cơ sở dữ liệu tempdb. Người dùng có thể kiểm soát cài đặt cho số lượng tệp (và hơn thế nữa). Ví dụ: người dùng có thể thực hiện các thao tác này

  • ALTER DATABASE [tempdb] ADD FILE
  • ALTER DATABASE [tempdb] REMOVE
Ghi chú. Xem , bao gồm các đề xuất liên quan đến các cài đặt này. Xem lại thông tin về số lượng tệp dữ liệu tempdb tương ứng với một số bộ xử lý logic nhất định. Theo mặc định, Cloud SQL tạo tối thiểu tám tệp cho các phiên bản có nhiều hơn hoặc bằng tám bộ xử lý logic. Như được bao gồm trong các đề xuất đó, nếu số lượng bộ xử lý logic ít hơn hoặc bằng tám, thì số lượng tệp được tạo bằng với số lượng bộ xử lý logic

Kích thước tập tin

Người dùng có thể kiểm soát kích thước của tệp trong cơ sở dữ liệu tempdb. Để biết thông tin về cách sử dụng câu lệnh ALTER DATABASE để thay đổi tùy chọn kích thước tệp, hãy xem THAY ĐỔI CƠ SỞ DỮ LIỆU (Transact-SQL) Tùy chọn tệp và nhóm tệp

MySQL đã được hơn 39% nhà phát triển trên thế giới sử dụng vào năm 2019, khiến nó trở thành Cơ sở dữ liệu phổ biến nhất thế giới. Nó chắc chắn thiếu các tính năng mở rộng được cung cấp bởi PostgreSQL, nhưng nó vẫn hữu ích cho một số lượng lớn các trường hợp sử dụng như ứng dụng web.  

Vì nó đạt tiêu chuẩn trong Ngăn xếp LAMP, trong đó ngăn xếp LAMP là bộ ứng dụng web Nguồn mở bao gồm Linux, Máy chủ HTTP Apache, MySQL và PHP; . Hãy nói về một vài tính năng nổi bật khiến MySQL trở nên hấp dẫn như vậy. Ngoài ra, hãy xem cách bạn có thể tích hợp từ MySQL sang PostgreSQL.  

Các tính năng chính của MySQL

  • Được duy trì bởi Oracle. Oracle sở hữu và duy trì MySQL. Nó cũng cung cấp các phiên bản cao cấp của MySQL với các dịch vụ bổ sung, plugin độc quyền, hỗ trợ người dùng và tiện ích mở rộng.  
  • Lịch sử lâu đời. MySQL đã tồn tại hơn 20 năm kể từ lần phát hành đầu tiên vào năm 1995
  • Cập nhật thường xuyên. MySQL được làm cho mạnh mẽ hơn với các bản cập nhật thường xuyên với các tính năng mới và cải tiến bảo mật. Bản phát hành mới nhất là Phiên bản 8. 0. 23 phát hành vào ngày 18 tháng 1 năm 2021
  • Tính năng MVCC. MySQL gần đây đã bắt đầu cung cấp các tính năng MVCC (Kiểm soát đồng thời nhiều phiên bản).  
  • Một cộng đồng hỗ trợ. Một cộng đồng các nhà phát triển tận tâm luôn sẵn sàng trợ giúp khắc phục sự cố khi cần thiết
  • Mã nguồn mở. MySQL cũng là Hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở và miễn phí (RDBMS)
  • người dùng. MySQL được sử dụng rộng rãi bởi Google, NASA, Flickr, GitHub, Netflix, Tesla, Twitter, Uber, Wikipedia, YouTube và Zendesk.

MySQL là một cơ sở dữ liệu nhẹ có thể được các nhà phát triển cài đặt và sử dụng trên các máy chủ ứng dụng sản xuất với các ứng dụng nhiều tầng lớn. Tận dụng MySQL như một phần trong quy trình làm việc của bạn có một số lợi thế.   

  • Các tính năng như Sao chép Master-Slave và Mở rộng quy mô được hỗ trợ bởi MySQL
  • Báo cáo giảm tải, Phân phối dữ liệu địa lý cũng được hỗ trợ bởi MySQL
  • Có một chi phí rất thấp với công cụ lưu trữ MyISAM khi được sử dụng cho các ứng dụng chỉ đọc
  • Đối với các bảng được sử dụng thường xuyên, MySQL cung cấp hỗ trợ cho Công cụ lưu trữ bộ nhớ
  • Đối với các câu lệnh được sử dụng nhiều lần, tồn tại Bộ đệm truy vấn.  
  • MySQL rất dễ học và khắc phục sự cố do có nhiều nguồn hữu ích như blog, sách trắng và sách về chủ đề này.  
  • MySQL là một Hệ thống quản lý cơ sở dữ liệu rất linh hoạt và có khả năng mở rộng

Bảng tạm thời là gì?

Bảng tạm thời của MySQL là loại bảng đặc biệt cho phép bạn lưu trữ tập kết quả tạm thời. Bạn có thể sử dụng lại tập hợp kết quả tạm thời này nhiều lần trong một phiên duy nhất trong MySQL

Cần có Bảng tạm thời khi truy vấn dữ liệu tốn kém hoặc hầu như không thể, cần một câu lệnh CHỌN duy nhất để hoạt động song song với các mệnh đề THAM GIA. Tại đây, bạn có thể tận dụng Bảng tạm thời của MySQL để lưu trữ kết quả ngay lập tức và sử dụng một truy vấn khác để phân tích hoặc xử lý nó

Đơn giản hóa MySQL ETL với Đường ống dữ liệu không mã của Hevo

Nền tảng Đường ống dữ liệu không mã được quản lý hoàn toàn như Hevo giúp bạn tích hợp dữ liệu từ hơn 100 nguồn dữ liệu (bao gồm hơn 40 nguồn dữ liệu miễn phí) như MySQL đến đích bạn chọn trong thời gian thực một cách dễ dàng

Hevo với đường cong học tập tối thiểu có thể được thiết lập chỉ trong vài phút cho phép người dùng tải dữ liệu mà không ảnh hưởng đến hiệu suất. Sự tích hợp mạnh mẽ của nó với vô số nguồn cung cấp cho người dùng sự linh hoạt để đưa vào các loại dữ liệu khác nhau, một cách trơn tru mà không cần phải viết mã một dòng nào.  

BẮT ĐẦU VỚI HEVO MIỄN PHÍ

Kiểm tra một số tính năng thú vị của Hevo

  • hoàn toàn tự động. Nền tảng Hevo có thể được thiết lập chỉ trong vài phút và yêu cầu bảo trì tối thiểu
  • Truyền dữ liệu theo thời gian thực. Hevo cung cấp khả năng di chuyển dữ liệu theo thời gian thực, vì vậy bạn luôn có thể có dữ liệu sẵn sàng cho phân tích
  • phép biến hình. Hevo cung cấp các chuyển đổi tải trước thông qua mã Python. Nó cũng cho phép bạn chạy mã chuyển đổi cho từng sự kiện trong Đường ống dữ liệu mà bạn đã thiết lập. Bạn cần chỉnh sửa các thuộc tính của đối tượng sự kiện nhận được trong phương thức biến đổi dưới dạng tham số để thực hiện chuyển đổi. Hevo cũng cung cấp các phép biến đổi kéo và thả như Hàm điều khiển và ngày, JSON và Thao tác sự kiện để đặt tên cho một số. Chúng có thể được cấu hình và kiểm tra trước khi đưa chúng vào sử dụng
  • kết nối. Hevo hỗ trợ hơn 100 Tích hợp cho nền tảng SaaS, tệp, cơ sở dữ liệu, phân tích và công cụ BI. Nó hỗ trợ các điểm đến khác nhau bao gồm Amazon Redshift, Firebolt, Snowflake Data Warehouses; .   
  • Truyền dữ liệu hoàn chỉnh và chính xác 100%. Cơ sở hạ tầng mạnh mẽ của Hevo đảm bảo truyền dữ liệu đáng tin cậy mà không làm mất dữ liệu
  • Cơ sở hạ tầng có thể mở rộng. Hevo có tích hợp sẵn cho hơn 100 nguồn, có thể giúp bạn mở rộng quy mô cơ sở hạ tầng dữ liệu của mình theo yêu cầu
  • Hỗ trợ trực tiếp 24/7. Nhóm Hevo luôn sẵn sàng hỗ trợ đặc biệt cho bạn thông qua trò chuyện, email và các cuộc gọi hỗ trợ
  • Quản lý lược đồ. Hevo loại bỏ nhiệm vụ quản lý lược đồ tẻ nhạt & tự động phát hiện lược đồ của dữ liệu đến và ánh xạ nó tới lược đồ đích
  • Giám sát trực tiếp. Hevo cho phép bạn giám sát luồng dữ liệu để bạn có thể kiểm tra xem dữ liệu của mình đang ở đâu tại một thời điểm cụ thể

Đơn giản hóa Phân tích dữ liệu của bạn với Hevo ngay hôm nay.  

ĐĂNG KÝ TẠI ĐÂY ĐỂ DÙNG THỬ MIỄN PHÍ 14 NGÀY

Các khía cạnh chính của bảng tạm thời MySQL là gì?

Phần này sẽ đề cập đến các khía cạnh chính của Bảng tạm thời MySQL để giúp bạn hiểu rõ hơn về chúng

Các tính năng chính của bảng tạm thời MySQL là gì?

  • Bạn có thể tạo Bảng tạm thời trong MySQL bằng cách tận dụng câu lệnh CREATE TEMPORARY TABLE. Bảng này được MySQL tự động xóa khi kết thúc phiên hoặc nếu kết nối bị ngắt
  • Bạn cũng có thể tận dụng câu lệnh DROP TABLE để loại bỏ một bảng tạm thời khi không sử dụng
  • Chỉ có thể truy cập Bảng tạm thời bởi máy khách tạo nó trong MySQL. Các máy khách khác nhau có thể phát triển các Bảng tạm thời có cùng tên mà không gây ra bất kỳ lỗi nào. Điều này xảy ra bởi vì chỉ khách hàng tạo bảng tạm thời mới có thể nhìn thấy nó. Tuy nhiên, hai Bảng tạm thời không thể có cùng tên vì chúng đang được thực thi trong cùng một phiên
  • Bạn có thể đặt tên của một bảng bình thường trong cơ sở dữ liệu của mình cho Bảng tạm thời trong MySQL. Ví dụ: nếu bạn phát triển Bảng tạm thời có tên là 'láng giềng' trong cơ sở dữ liệu mẫu, thì bảng 'láng giềng' hiện tại sẽ không thể truy cập được. Bây giờ, mọi truy vấn được đưa ra sẽ được thực thi đối với bảng tạm thời 'hàng xóm'. Khi bạn thoát khỏi bảng tạm thời 'hàng xóm', bảng cố định 'hàng xóm' sẽ có thể truy cập và khả dụng cho tất cả người dùng một lần nữa.   

Ngay cả khi bạn có thể có một bảng tạm thời có cùng tên với một bảng cố định, bạn nên đặt cho các bảng tạm thời một tên duy nhất. Điều này là do việc có cùng tên có thể dẫn đến nhầm lẫn và có thể dẫn đến mất dữ liệu không mong muốn

Chẳng hạn, nếu kết nối đến máy chủ cơ sở dữ liệu bị mất và bạn tự động kết nối lại với máy chủ, bạn sẽ không thể phân biệt giữa bảng cố định và bảng tạm thời.  

Khi nào nên sử dụng Bảng tạm thời của MySQL?

Các bảng tạm thời trong MySQL được tạo khi

  • Chúng tôi thực hiện các thao tác ALTER TABLE trên các bộ sưu tập dữ liệu lớn
  • Chúng tôi đồng thời thực hiện các lệnh CẬP NHẬT trên các bảng khác nhau
  • Chúng tôi cần một số giá trị DISTINCT và chúng tôi cần chúng theo thứ tự cụ thể
  • Trong một bảng, chúng tôi muốn đếm các giá trị riêng biệt
  • Chúng ta có thể thấy rằng MySQL sử dụng các bảng tạm thời trong nhiều tình huống khác nhau bằng cách tham khảo tài liệu về MySQL
  • Mối quan hệ giữa Bảng tạm thời của MySQL và Lược đồ cơ sở dữ liệu được tách rời, vì vậy khi chúng tôi hủy cơ sở dữ liệu MySQL, không phải lúc nào nó cũng làm mất các bảng tạm thời của cơ sở dữ liệu

Làm cách nào để sử dụng câu lệnh MySQL CREATE TEMPORARY TABLE?

Đây là những khía cạnh nổi bật của câu lệnh MySQL CREATE TEMPORARY TABLE sẽ được đề cập trong phần này

Tạo một ví dụ về bảng tạm thời của MySQL

Bạn có thể sử dụng cú pháp tạo Bảng MySQL bình thường để tạo Bảng tạm thời, ngoại trừ từ khóa TEMPORARY. Đây là cú pháp cho cùng

mysql> CREATE TEMPORARY TABLE table_name (  
   column_1, column_2, ..., table_constraints

Nếu bạn muốn tạo Bảng tạm thời MySQL có cấu trúc giống với bảng hiện có trong cơ sở dữ liệu, thì câu lệnh trên sẽ không hoạt động. Thay vào đó, bạn có thể tận dụng cú pháp được đề cập bên dưới

Mysql> CREATE TEMPORARY TABLE temporary_table_name SELECT * FROM original_table_name LIMIT 0;  
  • Bước 1. Sử dụng câu lệnh này để tạo một bảng tạm thời có tên là
    Mysql> CREATE TEMPORARY TABLE temporary_table_name SELECT * FROM original_table_name LIMIT 0;  
    1 cho ví dụ của chúng tôi
mysql> CREATE TEMPORARY TABLE Students( student_name VARCHAR(40) NOT NULL, total_marks DECIMAL(12,2) NOT NULL DEFAULT 0.00, total_subjects INT UNSIGNED NOT NULL DEFAULT 0);  

Đây là kết quả của truy vấn nói trên

MySQL TempDB
Nguồn hình ảnh
  • Bước 2. Bây giờ bạn đã tạo Bảng tạm thời, bạn cần điền vào đó các giá trị. Đây là một đoạn mã để giúp bạn hiểu cách thực hiện việc này
mysql>INSERT INTO Students(student_name, total_marks, total_subjects) VALUES ('Joseph', 150.75, 2), ('Peter', 180.75, 2);  

Sau khi thực thi câu lệnh này, đây là kết quả của một bảng tạm thời được điền trong MySQL sẽ như thế nào

MySQL TempDB
Nguồn hình ảnh
  • Bước 3. Tiếp theo, chạy truy vấn sau để có kết quả
mysql> SELECT * FROM Students; 

Sau khi thực hiện truy vấn nói trên, đây là kết quả mà bạn có thể mong đợi

MySQL TempDB
Nguồn hình ảnh
  • Bước 4. Một điểm cần lưu ý ở đây là nếu bạn thực hiện truy vấn SHOW TABLES, thì bảng tạm thời này sẽ không có trong danh sách. Ngoài ra, nếu bạn đóng phiên hiện tại và thử thực hiện câu lệnh SELECT, bạn sẽ nhìn thấy thông báo cho biết không có dữ liệu nào trong cơ sở dữ liệu được yêu cầu

Tạo bảng tạm thời MySQL với cấu trúc dựa trên truy vấn

Ví dụ này sẽ giúp chứng minh cách bạn có thể tạo Bảng tạm thời trong MySQL để lưu trữ 10 khách hàng hàng đầu dựa trên doanh thu mà họ mang lại. Cấu trúc của Bảng tạm thời được trích ra từ câu lệnh SELECT như sau

CREATE TEMPORARY TABLE top_customers
SELECT p.customerNumber, 
       c.customerName, 
       ROUND(SUM(p.amount),2) sales
FROM payments p
INNER JOIN customers c ON c.customerNumber = p.customerNumber
GROUP BY p.customerNumber
ORDER BY sales DESC
LIMIT 10;

Sau khi tạo bảng tạm thời top_customers, bạn có thể truy vấn dữ liệu giống như từ một bảng bình thường trong MySQL. Đây là đoạn mã cho cùng

SELECT 
    customerNumber, 
    customerName, 
    sales
FROM
    top_customers
ORDER BY sales;

Khi thực hiện truy vấn nói trên, đây là kết quả bạn có thể mong đợi

MySQL TempDB
Nguồn hình ảnh

Làm cách nào để xóa bảng tạm thời của MySQL?

Trong MySQL, bạn có thể xóa bảng tạm thời bằng câu lệnh DROP TABLE. Tuy nhiên, để tránh nhầm lẫn, nên sử dụng từ khóa TEMPORARY với câu lệnh DROP TABLE. Đây là cú pháp để loại bỏ bảng tạm thời của MySQL

________số 8_______

Một điểm cần lưu ý ở đây là bạn không thể sử dụng câu lệnh này để thoát khỏi một bảng cố định. Nếu bạn cố xóa nhầm một bảng cố định bằng cách tận dụng truy vấn đã nói ở trên, hệ thống sẽ đưa ra thông báo lỗi cho bạn biết rằng bảng bạn đang cố xóa không được xác định

Chẳng hạn, nếu bạn muốn xóa bảng top_customers khỏi ví dụ trước, đây là cách bạn có thể thực hiện

DROP TEMPORARY TABLE top_customers;

Nếu bạn tạo một ứng dụng tận dụng Kết nối liền kề hoặc Tổng hợp kết nối, thì không có gì chắc chắn rằng các bảng tạm thời sẽ tự động bị xóa khi chấm dứt ứng dụng của bạn. Điều này là do kết nối cơ sở dữ liệu được ứng dụng tận dụng có thể vẫn đang mở và được đặt trong nhóm kết nối để các máy khách khác sử dụng lại vào một ngày trong tương lai

Vì vậy, bạn nên luôn xóa Bảng tạm thời khi chúng đã phục vụ mục đích của mình

Làm cách nào bạn có thể kiểm tra xem một bảng tạm thời có tồn tại không?

MySQL không cung cấp câu lệnh hoặc chức năng để kiểm tra trực tiếp xem có tồn tại bảng tạm thời hay không. Tuy nhiên, bạn có thể phát triển một thủ tục được lưu trữ có thể kiểm tra xem Bảng tạm thời có tồn tại hay không như sau

DELIMITER //
CREATE PROCEDURE check_table_exists(table_name VARCHAR(100)) 
BEGIN
    DECLARE CONTINUE HANDLER FOR SQLSTATE '42S02' SET @err = 1;
    SET @err = 0;
    SET @table_name = table_name;
    SET @sql_query = CONCAT('SELECT 1 FROM ',@table_name);
    PREPARE stmt1 FROM @sql_query;
    IF (@err = 1) THEN
        SET @table_exists = 0;
    ELSE
        SET @table_exists = 1;
        DEALLOCATE PREPARE stmt1;
    END IF;
END //
DELIMITER ;

Trong quy trình được lưu trữ này, bạn có thể thử chọn dữ liệu từ một bảng tạm thời được chỉ định. Nếu bảng tạm thời tồn tại, biến @table_exists trả về giá trị 1. Nếu không tồn tại bảng tạm thời như vậy, biến @table_exists sẽ trả về giá trị 0

Câu lệnh sau đây gọi thủ tục lưu trữ, check_table_exists để xác minh xem bảng tạm thời Học sinh có tồn tại không

Mysql> CREATE TEMPORARY TABLE temporary_table_name SELECT * FROM original_table_name LIMIT 0;  
0

Đây là đầu ra của tuyên bố nói trên

MySQL TempDB
Nguồn hình ảnh

Phần kết luận

Blog này làm sáng tỏ các khía cạnh khác nhau của Bảng tạm thời MySQL sau phần giới thiệu ngắn gọn về MySQL cũng như các lợi ích và tính năng không thể thiếu của nó

Trích xuất dữ liệu phức tạp từ một tập hợp nguồn dữ liệu đa dạng để thực hiện phân tích sâu sắc có thể là một thách thức và đây là lúc Hevo tiết kiệm thời gian. Hevo cung cấp một cách nhanh hơn để di chuyển dữ liệu từ Cơ sở dữ liệu hoặc ứng dụng SaaS như MySQL vào Kho dữ liệu của bạn để được hiển thị trong công cụ BI. Hevo hoàn toàn tự động và do đó không yêu cầu bạn viết mã

HÃY THAM QUAN TRANG WEB CỦA CHÚNG TÔI ĐỂ KHÁM PHÁ HEVO

Bạn muốn dùng thử Hevo? Hãy ĐĂNG KÝ và tận mắt trải nghiệm bộ Hevo giàu tính năng. Bạn cũng có thể xem giá cạnh tranh nhất sẽ giúp bạn chọn gói phù hợp cho nhu cầu kinh doanh của mình

Các tệp tạm thời của MySQL được lưu trữ ở đâu?

Trên Unix, MySQL sử dụng giá trị của biến môi trường TMPDIR làm tên đường dẫn của thư mục lưu trữ các tệp tạm thời. Nếu TMPDIR không được đặt, MySQL sẽ sử dụng giá trị mặc định của hệ thống, thường là /tmp , /var/tmp hoặc /usr/tmp .

Làm cách nào để lưu trữ dữ liệu trong bảng tạm thời trong MySQL?

Trong MySQL, cú pháp tạo bảng tạm giống như cú pháp tạo câu lệnh bảng thông thường ngoại trừ từ khóa TEMPORARY. Chúng ta hãy xem câu lệnh sau tạo bảng tạm thời. mysql> TẠO BẢNG TẠM THỜI tên_bảng ( cột_1, cột_2,. , table_constraint .

Tại sao nên sử dụng các bảng tạm thời trong MySQL?

Cần có Bảng tạm thời khi việc truy vấn dữ liệu tốn kém hoặc hầu như không thể thực hiện được mà cần một câu lệnh CHỌN duy nhất để hoạt động song song với các mệnh đề THAM GIA. Here, you can leverage MySQL Temporary Tables to store the immediate result and use a different query to analyze or process it.

Các bảng tạm thời MySQL có nhanh hơn không?

Vì các bảng tạm thời được lưu trữ trong bộ nhớ nên chúng nhanh hơn đáng kể so với các bảng trên đĩa . Do đó, chúng có thể được sử dụng hiệu quả làm vùng lưu trữ trung gian, để tăng tốc độ thực thi truy vấn bằng cách giúp chia nhỏ các truy vấn phức tạp thành các thành phần đơn giản hơn hoặc thay thế cho truy vấn con và tham gia hỗ trợ.