sách gpt4 ăn đã đi

Giới thiệu về tối ưu hóa hiệu suất cơ sở dữ liệu MySQL

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 34 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài viết trên blog CFSDN về tối ưu hóa hiệu suất cơ sở dữ liệu MySQL này được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.

Tại sao phải tối ưu hóa? ?

Do có quá nhiều dữ liệu, từ việc triển khai dự án đến sử dụng trực tuyến của người dùng, số lượng dữ liệu tăng lên hàng trăm nghìn mỗi ngày, điều này đặt gánh nặng rất lớn lên máy chủ Internet luôn theo đuổi hiệu suất cao, nhưng với tư cách là doanh nghiệp. quy mô ngày càng tăng, số lượng người dùng tăng lên, hiệu suất của máy chủ ngày càng kém nên chúng ta phải có những yêu cầu cao hơn đối với cơ sở dữ liệu.

Bắt đầu từ đâu? ?

Đầu tiên là tốc độ truy vấn. Chúng tôi hy vọng rằng khi khối lượng dữ liệu đạt đến mức terabyte, chúng tôi vẫn có thể đạt được tốc độ truy vấn hàng triệu cấp.

Thứ hai là số lượng đồng thời. Chúng tôi yêu cầu nó có khả năng xử lý hàng nghìn, thậm chí hàng chục nghìn truy cập đồng thời cùng một lúc và nó cũng phải hợp tác với redis, mq, v.v. .

Thứ ba, tính sẵn sàng cao. Khi quy mô kinh doanh tiếp tục tăng, chúng ta phải sẵn sàng mở rộng máy chủ bất cứ lúc nào, có thể mở rộng từ hàng chục máy chủ lên hàng trăm, thậm chí hàng nghìn máy chủ, vì vậy chúng ta phải trang bị cụm mysql.

Thứ tư, về bảo mật giao dịch, khi lượng truy cập đồng thời cao xảy ra trong doanh nghiệp, làm thế nào để đảm bảo tính nhất quán trong đọc và ghi? ? ? Đảm bảo an toàn giao dịch? ? ? Tham khảo ý tưởng đa luồng. . .

Giải pháp là gì? ? ?

Điều đầu tiên cần nghĩ đến là nên sử dụng loại động cơ lưu trữ nào, bởi vì động cơ lưu trữ quyết định hiệu suất của nó, giống như việc bạn sử dụng ô tô, máy bay hay xe tăng. Mỗi động cơ đều có vai trò đặc biệt riêng. Có hai cái thường được sử dụng trong kinh doanh là innodb và myisam.

Giới thiệu về tối ưu hóa hiệu suất cơ sở dữ liệu MySQL

 Làm thế nào để lựa chọn? ? ?

Khi chúng tôi không có quá nhiều yêu cầu đọc và ghi cho doanh nghiệp và tập trung vào truy vấn, hãy sử dụng myisam. Khi chúng tôi có yêu cầu cao về tính toàn vẹn giao dịch, yêu cầu về tính tương tranh cao, các thao tác bổ sung và xóa thường xuyên cũng như các thao tác đọc và ghi thường xuyên, thì tốt hơn là nên sử dụng. sử dụng innodb.

Thứ hai, chúng ta muốn tăng tốc truy vấn nên cần thêm chỉ mục vào các trường đặc biệt của bảng. Nguyên tắc lập chỉ mục là thay đổi cấu trúc lưu trữ của dữ liệu. Có hai loại: loại thứ nhất là btree và loại thứ hai. là cây b+. Chúng tôi thường sử dụng b+tree trong hoạt động kinh doanh của mình. Một đặc điểm của btree là cả nút gốc và nút lá đều lưu trữ dữ liệu, chẳng hạn như việc truy vấn nút lá dưới cùng để đọc dữ liệu của từng lớp nút gốc. điều này sẽ làm tăng kích thước đĩa. Số lượng I/O sẽ vô tình làm tăng áp lực lên cơ sở dữ liệu. Vì vậy, hãy sử dụng cây b+.

Thứ ba là triển khai giải pháp có tính sẵn sàng cao. Ở đây chúng tôi sẽ trang bị cho dịch vụ cơ sở dữ liệu một cụm cấu trúc chủ-phụ để giảm bớt áp lực của việc đọc và ghi.

Thứ tư là vấn đề bảo mật Tại đây bạn có thể tham khảo các vấn đề bảo mật luồng, chẳng hạn như giải quyết vấn đề truy cập đồng thời cao như thế nào? ? Làm thế nào có thể đảm bảo tính toàn vẹn của các giao dịch? ? Rocketmq cũng liên quan đến các tin nhắn giao dịch. Làm thế nào để tránh loại vấn đề này, chúng ta có thể khóa nó. Sau đây là cách phân loại ổ khóa.

Giới thiệu về tối ưu hóa hiệu suất cơ sở dữ liệu MySQL

tối ưu hóa sql

1. Cố gắng tránh quét toàn bộ bảng khi truy vấn. Trước tiên hãy xem xét việc thêm chỉ mục vào vị trí và thứ tự theo trường.

2. Tránh sử dụng giá trị null trong trường Where, vì vậy hãy cố gắng sử dụng các ràng buộc không null khi thiết kế bảng. Một số dữ liệu sẽ mặc định là null và bạn có thể đặt giá trị mặc định thành 0 hoặc -1.

3. Tránh sử dụng toán tử != hoặc <> trong mệnh đề Where MySQL chỉ sử dụng các chỉ mục cho <, <=, =, >, >=, between, in và đôi khi like.

4. Tránh sử dụng hoặc ở nơi kết nối các điều kiện, nếu không nó có thể khiến công cụ từ bỏ chỉ mục và thực hiện quét toàn bộ bảng. Bạn có thể sử dụng kết hợp để hợp nhất các truy vấn.

      chọn id từ t nơi num = 30 hợp chọn id từ t nơi num = 40,

5. Cố gắng tránh thực hiện các thao tác hàm hoặc biểu thức trong mệnh đề Where.

6. Tốt nhất không nên sử dụng select * from t, thay thế "*" bằng danh sách trường cụ thể và không trả về bất kỳ trường nào không sử dụng.

7. Cũng nên sử dụng in và not in một cách thận trọng, nếu không sẽ dẫn đến việc quét toàn bộ bảng, chẳng hạn như.

chọn id từ t trong đó num in (1,2,3) Nếu đó là giá trị liên tục, nên sử dụng giữa và, chọn id từ t trong khoảng từ 1 đến 3;.

8. Chọn id từ t trong đó col giống như %a%; truy vấn mờ với % ở bên trái sẽ dẫn đến truy xuất bảng đầy đủ. Nếu cần truy xuất toàn văn bản, có thể sử dụng các công cụ tìm kiếm toàn văn bản như es và slor.

9. Giới hạn các hàng bù trừ Về truy vấn phân trang, hãy cố gắng đảm bảo rằng không có độ lệch lớn. Ví dụ: giới hạn 10000,10 tương đương với việc loại bỏ 10000 hàng đầu tiên và sau đó lấy 10 hàng từ các hàng được truy vấn. Bạn có thể thêm một số điều kiện vào. lọc nó (Lọc hoàn chỉnh), thay vì sử dụng giới hạn để bỏ qua dữ liệu được truy vấn. Đây là vấn đề ==bù đắp làm công việc vô ích==. Tương ứng với các dự án thực tế, cần tránh số lượng trang lớn và cố gắng hướng dẫn người dùng thực hiện lọc có điều kiện.

Tóm tắt

到此这篇关于mysql数据库性能优化介绍的文章就介绍到这了,更多相关mysql性能优化内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/weixin_38012558/article/details/122145042 。

最后此篇关于MySQL数据库性能优化介绍的文章就讲到这里了,如果你想了解更多关于MySQL数据库性能优化介绍的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

34 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress