Hướng dẫn what is query in mysql with example? - truy vấn trong mysql với ví dụ là gì?

Dưới đây là các ví dụ về cách giải quyết một số vấn đề phổ biến với MySQL.

Một số ví dụ sử dụng Bảng

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
0 để giữ giá của mỗi bài viết [số mặt hàng] cho một số nhà giao dịch [đại lý] nhất định. Giả sử rằng mỗi nhà giao dịch có một giá cố định duy nhất cho mỗi bài viết, sau đó [
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
1,
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
2] là chìa khóa chính cho các hồ sơ.

Bắt đầu công cụ dòng lệnh MySQL và chọn cơ sở dữ liệu:mysql and select a database:

$> mysql your-database-name

Để tạo và điền vào bảng ví dụ, hãy sử dụng các câu sau:

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];

Sau khi đưa ra các câu lệnh, bảng nên có nội dung sau:

SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+

Bạn có thể làm công việc mới là quản trị viên cơ sở dữ liệu hoặc kỹ sư dữ liệu và bạn đã bị mất khi cố gắng tìm ra những truy vấn trông điên rồ này có nghĩa là gì và làm. Tại sao có 5 lần tham gia và tại sao có một

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
3 được sử dụng trong một truy vấn con trước khi một trong những lần tham gia thậm chí xảy ra? Hãy nhớ rằng, bạn đã được thuê vì một lý do - rất có thể, lý do đó cũng phải làm với nhiều truy vấn phức tạp đã được tạo và chỉnh sửa trong thập kỷ qua.

Từ khóa

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 được sử dụng trong các cơ sở dữ liệu SQL khác nhau và cung cấp thông tin về cách cơ sở dữ liệu SQL của bạn thực hiện truy vấn. Trong MySQL,
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 có thể được sử dụng trước một truy vấn bắt đầu bằng
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
6,
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
7,
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
8,
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
9 và
SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
0. Đối với một truy vấn đơn giản, nó sẽ trông giống như sau:

EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';

Thay vì đầu ra kết quả thông thường, MySQL sau đó sẽ hiển thị kế hoạch thực thi tuyên bố của mình bằng cách giải thích các quy trình nào diễn ra theo thứ tự khi thực hiện câu lệnh.

Lưu ý: Nếu

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 không hoạt động cho bạn, người dùng cơ sở dữ liệu của bạn có thể không có đặc quyền
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
6 cho các bảng hoặc chế độ xem bạn đang sử dụng trong câu lệnh của mình.
If
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 does not work for you, your database user might not have the
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
6 privilege for the tables or views you are using in your statement.

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 là một công cụ tuyệt vời để nhanh chóng khắc phục các truy vấn chậm. Mặc dù nó chắc chắn có thể giúp bạn, nhưng nó sẽ không lấy đi sự cần thiết về tư duy cấu trúc và một cái nhìn tổng quan tốt về các mô hình dữ liệu tại chỗ. Thông thường, cách khắc phục đơn giản nhất và lời khuyên nhanh nhất là thêm một chỉ mục vào một cột bảng cụ thể được đề cập nếu chúng được sử dụng trong nhiều truy vấn với các vấn đề về hiệu suất. Mặc dù vậy, hãy coi chừng không sử dụng quá nhiều chỉ số vì điều đó có thể phản tác dụng. Đọc chỉ mục và bảng chỉ có ý nghĩa nếu bảng có một lượng hàng đáng kể và bạn chỉ cần một vài điểm dữ liệu. Nếu bạn đang truy xuất một kết quả lớn được đặt từ bảng và truy vấn các cột khác nhau thường xuyên, một chỉ mục trên mỗi cột không có ý nghĩa và cản trở hiệu suất nhiều hơn nó giúp. Để biết thêm về các tính toán thực tế của Index so với không có chỉ mục, hãy đọc hiệu suất ước tính trong tài liệu chính thức của MySQL.and the table only makes sense if the table has a significant amount of rows and you need only a few data points. If you are retrieving a huge result set from a table and querying different columns often, an index on every column does not make sense and hinders performance more than it helps. For more on the actual calculations of index vs no index, read Estimating Performance in the official MySQL documentation.

Những điều bạn muốn tránh bất cứ khi nào có thể và áp dụng đang phân loại và tính toán trong các truy vấn. Nếu bạn nghĩ rằng bạn không thể tránh các tính toán trong các truy vấn của bạn: Có, bạn có thể. Viết kết quả được đặt ở một nơi khác và tính toán điểm dữ liệu của bạn bên ngoài truy vấn, nó sẽ ít gây căng thẳng cho cơ sở dữ liệu và do đó nói chung là tốt hơn cho ứng dụng của bạn. Chỉ cần đảm bảo rằng bạn ghi lại lý do tại sao bạn tính toán trong ứng dụng của mình thay vì có kết quả được tạo ra trong SQL ngay lập tức. Nếu không, quản trị viên hoặc nhà phát triển cơ sở dữ liệu tiếp theo sẽ xuất hiện và có ý tưởng vinh quang khi sử dụng tính toán trong truy vấn dọc theo các dòng, OH OH Look, người tiền nhiệm của tôi thậm chí còn biết bạn có thể làm điều đó trong SQL! Một số nhóm nhà phát triển chưa gặp rắc rối không thể tránh khỏi khi chết cơ sở dữ liệu có thể sử dụng các tính toán trong trình độ cho sự khác biệt về số lượng giữa ngày hoặc các điểm dữ liệu tương tự.sorting and calculations within queries. If you think you cannot avoid calculations within your queries: yes, you can. Write the result set somewhere else and calculate your data point outside of the query, it will put less strain on the database and therefore be overall better for your application. Just make sure you document why you’re calculating within your application rather than having a result produced in SQL right away. Otherwise the next Database Administrator or developer will come along and have the glorious idea of using a calculation within the query along the lines of, “oh look, my predecessor didn’t even know you can do that in SQL!” Some developer teams who have not yet had the inevitable trouble of dying databases might use in-query calculations for number differences between dates or similar data points.

Nguyên tắc chung cho các truy vấn SQL như sau:

Chính xác và chỉ tạo ra kết quả mà bạn cần.

Hãy để kiểm tra một truy vấn phức tạp hơn một chút

SELECT site_options.domain, sites_users.user, site_taxes.monthly_statement_fee, site.name, AVG[price] AS average_product_price FROM sites_orders_products, site_taxes, site, sites_users, site_options WHERE site_options.site_id = site.id AND sites_users.id = site.user_id AND site_taxes.site_id = site.id AND sites_orders_products.site_id = site.id GROUP BY site.id ORDER BY site.date_modified desc LIMIT 5;
+-----------------------------+-----------------------------+-----------------------+------------------------------------------+-----------------------+
| domain                      | user                        | monthly_statement_fee | name                                     | average_product_price |
+-----------------------------+-----------------------------+-----------------------+------------------------------------------+-----------------------+
| www.xxxxxxxxxxxxxxxxxxx.com |  |                  0.50 | xxxxxxxxxxxxxxxxxxxxx                    |              3.254781 |
| www.xxxxxxxxxxx.com         |    |                  0.50 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |              9.471022 |
|                             |          |                  0.00 | xxxxxxxxxxxxxxxxx                        |              8.646297 |
|                             |              |                  0.00 | xxxxxxxxxxxxxxx                          |              9.042460 |
|                             |            |                  0.00 | xxxxxxxxxxxxxxxxxx                       |              6.679182 |
+-----------------------------+-----------------------------+-----------------------+------------------------------------------+-----------------------+
5 rows in set [0.00 sec]

Đầu ra và đầu ra ____ của nó.

+------+-------------+---------------------------------+--------+-----------------+---------------+---------+---------------------------------+------+-----------+
| id   | select_type | table                           | type   | possible_keys   | key           | key_len | ref                             | rows | Extra     |
+------+-------------+---------------------------------+--------+-----------------+---------------+---------+---------------------------------+------+-----------+
|    1 | SIMPLE      | sites                           | index  | PRIMARY,user_id | PRIMARY       | 4       | NULL                            |  858 | Using temporary; Using filesort |
|    1 | SIMPLE      | sites_options                   | ref    | site_id         | site_id       | 4       | service.sites.id                |    1 |           |
|    1 | SIMPLE      | sites_taxes                     | ref    | site_id         | site_id       | 4       | service.sites.id                |    1 |           |
|    1 | SIMPLE      | sites_users                     | eq_ref | PRIMARY         | PRIMARY       | 4       | service.sites.user_id           |    1 |           |
|    1 | SIMPLE      | sites_orders_products           | ref    | site_id         | site_id       | 4       | service.sites.id                | 4153 |           |//
+------+-------------+---------------------------------+--------+-----------------+---------------+---------+---------------------------------+------+-----------+
5 rows in set [0.00 sec]

Các cột trong đầu ra

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 với các cột cần chú ý đặc biệt để xác định các vấn đề in đậm là:

  • ID [ID truy vấn]
  • select_type [loại câu lệnh]
  • Bảng [bảng tham chiếu]
  • loại [loại tham gia]
  • Có thể_keys [khóa nào có thể đã được sử dụng]
  • khóa [khóa đã được sử dụng]
  • key_len [chiều dài của phím đã sử dụng]
  • Ref [cột so sánh với chỉ mục]
  • Hàng [số lượng hàng được tìm kiếm] [amount of rows searched]
  • Thêm [thông tin bổ sung] [additional information]

Lượng hàng được tìm kiếm càng cao, mức tối ưu hóa càng tốt về các chỉ số và độ chính xác truy vấn cần phải được tối đa hóa hiệu suất. Cột thêm cho thấy các hành động có thể mà bạn có thể tập trung vào để cải thiện truy vấn của mình nếu có.

Hiển thị cảnh báo;

Nếu truy vấn mà bạn đã sử dụng với

CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4 không phân tích chính xác, bạn có thể nhập
SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
7 vào Trình chỉnh sửa truy vấn MySQL của mình để hiển thị thông tin về câu lệnh cuối cùng được chạy và không được chẩn đoán, tức là nó sẽ không hiển thị thông tin cho các câu như
SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
8. Mặc dù nó không thể đưa ra một kế hoạch thực hiện truy vấn thích hợp như
CREATE TABLE shop [
    article INT UNSIGNED  DEFAULT '0000' NOT NULL,
    dealer  CHAR[20]      DEFAULT ''     NOT NULL,
    price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
    PRIMARY KEY[article, dealer]];
INSERT INTO shop VALUES
    [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
    [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
4, nhưng nó có thể cung cấp cho bạn những gợi ý về những đoạn truy vấn mà nó có thể xử lý. Hãy nói rằng chúng tôi sử dụng truy vấn
EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';
0 trên bất kỳ cơ sở dữ liệu nào thực sự không có bảng
EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';
1. Đầu ra MySQL sẽ là:

ERROR 1146 [42S02]: Table 'db.foo' doesn't exist

Nếu chúng ta nhập

SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
7, đầu ra như sau:

+-------+------+-------------------------------------+
| Level | Code | Message                             |
+-------+------+-------------------------------------+
| Error | 1146 | Table 'db.foo' doesn't exist        |
+-------+------+-------------------------------------+
1 row in set [0.00 sec]

Hãy để thử điều này với một lỗi cú pháp có chủ ý.

EXPLAIN SELECT * FROM foo WHERE name = ///;

Điều này tạo ra các cảnh báo sau:

> SHOW WARNINGS;
+-------+------+---------------------------------------------------------------------+
| Level | Code | Message                                                             |
+-------+------+---------------------------------------------------------------------+
| Error | 1064 | You have an error in your SQL syntax; [...] near '///' at line 1    |
+-------+------+---------------------------------------------------------------------+

Đầu ra cảnh báo này khá đơn giản và được MySQL hiển thị ngay lập tức, nhưng đối với các truy vấn phức tạp hơn không phân tích, vẫn có thể xem xét những gì xảy ra trong các đoạn truy vấn có thể được phân tích cú pháp.

SELECT * FROM shop ORDER BY article;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|       1 | A      |  3.45 |
|       1 | B      |  3.99 |
|       2 | A      | 10.99 |
|       3 | B      |  1.45 |
|       3 | C      |  1.69 |
|       3 | D      |  1.25 |
|       4 | D      | 19.95 |
+---------+--------+-------+
7 bao gồm các dấu hiệu đặc biệt có thể cung cấp thông tin hữu ích, chẳng hạn như:

  • EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';
    
    4: Tra cứu chỉ mục sẽ xảy ra nếu truy vấn đã được phân tích cú pháp đúng cách
  • EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';
    
    5: Điều kiện nếu xảy ra trong phần cụ thể này của truy vấn
  • EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';
    
    6: Tra cứu chỉ mục sẽ xảy ra thông qua khóa chính
  • EXPLAIN SELECT * FROM foo WHERE foo.bar = 'infrastructure as a service' OR foo.bar = 'iaas';
    
    7: Một bảng nội bộ sẽ được tạo ở đây để lưu kết quả tạm thời, ví dụ như trong các nghiên cứu phụ trước khi tham gia

Để tìm hiểu thêm về các điểm đánh dấu đặc biệt này, hãy đọc định dạng đầu ra giải thích mở rộng trong tài liệu chính thức của MySQL.

Sửa chữa dài hạn

Có một số cách để khắc phục nguyên nhân gốc của hiệu suất cơ sở dữ liệu xấu. Điểm đầu tiên cần xem xét là mô hình dữ liệu, tức là dữ liệu được cấu trúc như thế nào và bạn đang sử dụng cơ sở dữ liệu phù hợp? Đối với nhiều sản phẩm, cơ sở dữ liệu SQL là tốt. Một điều quan trọng cần nhớ là luôn luôn tách các nhật ký truy cập khỏi cơ sở dữ liệu sản xuất thông thường, điều không may không xảy ra ở nhiều công ty. Chủ yếu trong các trường hợp này, một công ty bắt đầu nhỏ, lớn hơn và về cơ bản vẫn sử dụng cùng một cơ sở dữ liệu, điều đó có nghĩa là họ truy cập cùng một cơ sở dữ liệu cho cả chức năng ghi nhật ký cũng như các giao dịch khác. Điều này làm giảm đáng kể hiệu suất tổng thể, đặc biệt là khi công ty phát triển lớn hơn. Do đó, điều rất quan trọng là tạo ra một mô hình dữ liệu phù hợp và bền vững.

Mô hình dữ liệu

Việc chọn một mô hình dữ liệu rất có thể cũng sẽ tiết lộ đúng dạng cơ sở dữ liệu. Trừ khi sản phẩm của bạn rất cơ bản, bạn có thể sẽ có một số cơ sở dữ liệu cho một số trường hợp sử dụng - nếu bạn cần hiển thị số gần thời gian thực cho nhật ký truy cập, rất có thể bạn sẽ muốn có một kho dữ liệu hiệu suất cao trong khi các giao dịch thông thường có thể xảy ra thông qua SQL Cơ sở dữ liệu và bạn có thể có một cơ sở dữ liệu đồ thị tích lũy các điểm dữ liệu liên quan của cả hai cơ sở dữ liệu vào một công cụ đề xuất.

Kiến trúc phần mềm của sản phẩm tổng thể cũng quan trọng như chính cơ sở dữ liệu vì thiết kế xấu ở đây sẽ dẫn đến các tắc nghẽn đi về cơ sở dữ liệu và làm chậm mọi thứ từ phía phần mềm cũng như những gì cơ sở dữ liệu có thể xuất ra. Bạn sẽ cần chọn xem các container có phù hợp với sản phẩm của mình hay không, liệu một nguyên khối có phải là cách tốt hơn để xử lý mọi thứ hay không, liệu bạn có muốn có một nguyên khối cốt lõi với một số microservice nhắm mục tiêu chức năng khác trải ra ở nơi khác và cách bạn truy cập, thu thập, xử lý và lưu trữ dữ liệu.

Phần cứng

Cũng quan trọng như cấu trúc chung của bạn, phần cứng của bạn là một thành phần chính trong hiệu suất cơ sở dữ liệu của bạn. Exoscale cung cấp cho bạn các tùy chọn phiên bản khác nhau mà bạn có thể sử dụng tùy thuộc vào giao dịch và khối lượng lưu trữ cũng như thời gian phản hồi mong muốn của bạn.

Điều quan trọng là phải xác định các khoảng thời gian cao điểm của ứng dụng của bạn và do đó biết khi nào nên bỏ qua các truy vấn quản trị chậm hơn nếu có thể. Đĩa I/O và thống kê mạng cũng cần được xem xét khi bạn thiết kế thời gian của các giao dịch và phân tích cơ sở dữ liệu của bạn. Với DBAAS trên exoscale, giờ đây bạn có thể dễ dàng bắt đầu trên MySQL hoặc các dịch vụ cơ sở dữ liệu khác.

Bản tóm tắt

Tóm lại, đây là những điểm chính cho hiệu suất dài hạn được tóm tắt:

  • Tạo một mô hình dữ liệu bền vững phù hợp với nhu cầu của công ty bạn
  • Chọn đúng dạng cơ sở dữ liệu
  • Sử dụng kiến ​​trúc phần mềm phù hợp với sản phẩm của bạn
  • Đi qua các lần lặp thường xuyên để xem xét cấu trúc của các truy vấn của bạn và sử dụng
    CREATE TABLE shop [
        article INT UNSIGNED  DEFAULT '0000' NOT NULL,
        dealer  CHAR[20]      DEFAULT ''     NOT NULL,
        price   DECIMAL[16,2] DEFAULT '0.00' NOT NULL,
        PRIMARY KEY[article, dealer]];
    INSERT INTO shop VALUES
        [1,'A',3.45],[1,'B',3.99],[2,'A',10.99],[3,'B',1.45],
        [3,'C',1.69],[3,'D',1.25],[4,'D',19.95];
    4 trên các truy cập phức tạp hơn, tối ưu hóa việc sử dụng cho [các] cơ sở dữ liệu đã chọn của bạn, cũng liên quan đến cập nhật cơ sở dữ liệu và cách chúng có thể ảnh hưởng đến bạn
  • Chọn các trường hợp phù hợp nhất với nhu cầu ứng dụng và cơ sở dữ liệu của bạn theo hiệu suất và băng thông

Truy vấn với một ví dụ là gì?

Truy vấn bằng ví dụ [QBE] là ngôn ngữ truy vấn cơ sở dữ liệu cho cơ sở dữ liệu quan hệ.Nó được phát minh bởi Moshé M. Zloof tại nghiên cứu IBM vào giữa những năm 1970, song song với sự phát triển của SQL.Đây là ngôn ngữ truy vấn đồ họa đầu tiên, sử dụng các bảng trực quan trong đó người dùng sẽ nhập các lệnh, các yếu tố và điều kiện ví dụ.a database query language for relational databases. It was devised by Moshé M. Zloof at IBM Research during the mid-1970s, in parallel to the development of SQL. It is the first graphical query language, using visual tables where the user would enter commands, example elements and conditions.

Các truy vấn cơ bản trong MySQL là gì?

Danh sách các truy vấn MySQL thường được sử dụng để tạo cơ sở dữ liệu, sử dụng cơ sở dữ liệu, tạo bảng, bản ghi chèn, bản ghi cập nhật, xóa bản ghi, chọn bản ghi, bảng cắt ngắn và bảng thả được đưa ra bên dưới.

Truy vấn đưa ra hai ví dụ về truy vấn là gì?

Ví dụ về các truy vấn phổ biến..
Giá trị tối đa cho một cột."Số mặt hàng cao nhất là gì?"....
Hàng giữ tối đa của một cột nhất định.....
Tối đa cột mỗi nhóm.....
Các hàng giữ mức tối đa theo nhóm của một trường nhất định.....
Sử dụng các biến người dùng.....
Sử dụng chìa khóa nước ngoài.....
Tìm kiếm trên hai phím.....
Tính toán các chuyến thăm mỗi ngày ..

Bài Viết Liên Quan

Chủ Đề