Cơ sở dữ liệu làm gì trong wordpress?
Tại Delicious Brains, cơ sở dữ liệu về ăn, uống và ngủ của chúng tôi. Tuy nhiên, chúng tôi tin rằng bất kỳ nhà phát triển nào làm việc với WordPress đều phải có một số kiến thức nhất định về cơ sở dữ liệu đằng sau một trang web. Vì vậy, tôi đã tổng hợp hướng dẫn cuối cùng về cơ sở dữ liệu WordPress Show
Bắt đầu nào
Cơ sở dữ liệu WordPressCơ sở dữ liệu là một phần thiết yếu của trang web WordPress. WordPress sử dụng hệ quản trị cơ sở dữ liệu MySQL và yêu cầu phiên bản MySQL 5. 6 và cao hơn Nó cũng hoạt động trên MariaDB phiên bản 10. 1 hoặc cao hơn. MariaDB là một rẽ nhánh được cấp phép GPL đầy đủ của MySQL, có thể được sử dụng như một sự thay thế thả xuống cho MySQL. Kinsta đã viết một bài nghiên cứu sâu về lịch sử của MariaDB và một số điểm khác biệt của nó với MySQL Mẹo chuyên nghiệp. SpinupWP hỗ trợ MySQL 5. 7 (nhưng bị loại bỏ với Ubuntu 20), MySQL 8 cũng như phiên bản MariaDB mới nhấtCông cụ lưu trữ MySQLCông cụ lưu trữ là một phần của cơ sở dữ liệu chịu trách nhiệm đọc và ghi dữ liệu. Kể từ MySQL 5. 5, công cụ lưu trữ mặc định là InnoDB. Nó là công cụ lưu trữ được sử dụng phổ biến nhất, vì nó có khóa cấp hàng thay vì khóa cấp bảng đầy đủ (cực kỳ quan trọng khi bạn thực hiện xuất/sao lưu mysqldump), có hỗ trợ giao dịch (cho phép bạn cam kết và khôi phục SQL MyISAM là công cụ lưu trữ được WordPress sử dụng trước đây và bạn vẫn có thể có các trang web WordPress cũ hơn đang chạy trên đó. Một số trang web thậm chí có thể có sự kết hợp của các bảng sử dụng cả công cụ lưu trữ MyISAM và InnoDB Mẹo chuyên nghiệp. Chuyển đổi MyISAM sang InnoDB bằng phpMyAdmin để cải thiện hiệu suất cơ sở dữ liệuBạn có thể đã gặp phải sự cố mã hóa ký tự khi di chuyển cơ sở dữ liệu WordPress của mình từ máy chủ này sang máy chủ khác và tự hỏi những bộ ký tự và đối chiếu được đề cập trên các bài viết hỗ trợ là gì. Vậy bộ ký tự và bộ đối chiếu là gì? Bộ ký tự MySQL là một bộ ký tự được phép trong một chuỗi. Trong một bảng chữ cái có 26 ký tự – a đến z. Mỗi chữ cái được gán một số, ví dụ: a = 1, b = 2, c = 3, v.v. Chữ cái là ký hiệu và số liên quan là mã hóa Sự kết hợp của tất cả các chữ cái từ a đến z và mã hóa số tương ứng của chúng là thứ tạo nên một bộ ký tự. MySQL hỗ trợ nhiều bộ ký tự cho phép bạn lưu trữ hầu hết mọi ký tự trong một chuỗi Đối chiếu MySQL là một bộ quy tắc được sử dụng để so sánh các ký tự trong một bộ ký tự cụ thể. Để so sánh các chuỗi, cơ sở dữ liệu sử dụng các số mã hóa ký tự để thực hiện so sánh. Một ví dụ về quy tắc Đối chiếu, là đối chiếu không phân biệt chữ hoa chữ thường trong đó các chuỗi được so sánh ngay cả khi chúng ở dạng ký tự viết thường hoặc viết hoa. Các bộ sưu tập có thể trở nên khá phức tạp như tài liệu MySQL mô tả hầu hết các đối chiếu có nhiều quy tắc, không chỉ để phân biệt chữ hoa, mà còn để phân biệt trọng âm ("dấu" là một dấu gắn liền với một ký tự như trong tiếng Đức Ö) và đối với ánh xạ nhiều ký tự (chẳng hạn như quy tắc MySQL cho phép bạn chỉ định các bộ ký tự và đối chiếu ở bốn cấp độ. máy chủ, cơ sở dữ liệu, bảng và cột Đối với các trang web WordPress, bộ ký tự được đề xuất là 8 và đối chiếu được đề xuất là 9. wordpress 4. 2 đã nâng cấp các bảng từ bộ ký tự 0 lên 8, cho phép lưu trữ các ký tự 4 byte, nghĩa là bất kỳ ký tự Unicode nào cũng có thể được lưu trữ trong cơ sở dữ liệu. Chính Peter Tasker của chúng tôi đã viết một hướng dẫn tuyệt vời dành cho các nhà phát triển về cách thức hoạt động của UnicodeTham quan cơ sở dữ liệu WordPressTrong phần sau, tất cả các bảng sẽ được tham chiếu bằng cách sử dụng tiền tố mặc định là ‘wp_’. Tuy nhiên, vì lý do bảo mật, bạn nên sử dụng tiền tố khác khi cài đặt các trang web WordPress của mình Nếu bạn đang tìm kiếm một mô tả về cấu trúc của các bảng, với các kiểu dữ liệu cột và chỉ mục, thì hãy xem WordPress codex Những cái bàn
wp_postsBảng bài viết được cho là bảng quan trọng nhất trong cơ sở dữ liệu WordPress. Tên của nó đôi khi khiến những người tin rằng nó hoàn toàn chứa các bài đăng trên blog của họ. Tuy nhiên, mặc dù được đặt tên xấu, nhưng nó là một bảng cực kỳ mạnh mẽ lưu trữ nhiều loại nội dung khác nhau bao gồm bài đăng, trang, mục menu, tệp đính kèm phương tiện và bất kỳ loại bài đăng tùy chỉnh nào mà một trang web sử dụng Bản chất nội dung linh hoạt của bảng được cung cấp bởi cột 'post_type' biểu thị nếu hàng là một bài đăng, trang, tệp đính kèm, nav_menu_item hoặc loại khác. Nhưng sự linh hoạt này cũng gây khó khăn để thảo luận và mô tả. Về cơ bản, bảng chứa các hàng đối tượng nội dung với các loại khác nhau, nhưng để dễ đọc, tôi sẽ gọi các hàng là “bài đăng” trong suốt bài viết này
wp_postmetaBảng này chứa bất kỳ thông tin bổ sung nào về các bài đăng riêng lẻ. Đó là một bảng dọc sử dụng các cặp khóa/giá trị để lưu trữ dữ liệu của nó, một kỹ thuật mà WordPress sử dụng trên một số bảng trong cơ sở dữ liệu cho phép lõi, plugin và chủ đề của WordPress lưu trữ dữ liệu không giới hạn
wp_commentsBất kỳ bài đăng nào cho phép thảo luận đều có thể có nhận xét được đăng trên đó. Bảng này lưu trữ những nhận xét đó và một số dữ liệu cụ thể về chúng. Thông tin thêm có thể được lưu trữ trong wp_commentmeta
wp_commentmetaBảng này lưu trữ bất kỳ thông tin bổ sung nào liên quan đến nhận xét
wp_termsCác điều khoản là các mục của một phân loại được sử dụng để phân loại các đối tượng. Phân loại học cái gì? . Ví dụ: khi tạo một bài đăng trong WordPress, theo mặc định, bạn có thể thêm một danh mục và một số thẻ vào đó. Cả 'Danh mục' và 'Thẻ' đều là những ví dụ về phân loại, về cơ bản là một cách để nhóm các thứ lại với nhau Để phân loại bài đăng này (meta của tôi như thế nào) tôi sẽ cho nó một danh mục 'Hướng dẫn' và các thẻ 'cơ sở dữ liệu' và 'mysql'. Danh mục và thẻ là các thuật ngữ sẽ được chứa trong bảng này
wp_termmetawordpress 4. 4 đã giới thiệu một bảng mới để lưu trữ siêu dữ liệu về các thuật ngữ – wp_termmeta. Meta thuật ngữ có thể được truy cập tương tự như meta bài đăng với các chức năng của trình trợ giúp 2, 0, 1 và 2Meta thuật ngữ cho phép nhà phát triển lưu trữ dữ liệu tùy chỉnh về các thuật ngữ theo cách tiêu chuẩn. Ví dụ: bạn có thể muốn đính kèm hình ảnh vào danh mục bài đăng sẽ được hiển thị trên trang lưu trữ danh mục
wp_term_taxonomyTheo ví dụ wp_terms ở trên, các thuật ngữ 'Hướng dẫn', 'cơ sở dữ liệu' và 'mysql' được lưu trữ trong wp_terms chưa tồn tại dưới dạng 'Danh mục' và dưới dạng 'Thẻ' trừ khi chúng được cung cấp ngữ cảnh. Mỗi thuật ngữ được gán một nguyên tắc phân loại bằng bảng này Cấu trúc của bảng này cho phép bạn sử dụng cùng một thuật ngữ trên các nguyên tắc phân loại khác nhau. Ví dụ: 'Cơ sở dữ liệu' có thể được sử dụng làm danh mục cho bài đăng và làm thuật ngữ phân loại tùy chỉnh cho loại bài đăng tùy chỉnh (hãy nghĩ đến portfolio_category cho các mục danh mục đầu tư). Thuật ngữ Cơ sở dữ liệu sẽ tồn tại một lần trong wp_terms, nhưng sẽ có hai hàng trong wp_term_taxonomy cho mỗi phân loại
wp_term_relationshipsCho đến nay, chúng tôi đã thấy cách các thuật ngữ và nguyên tắc phân loại của chúng được lưu trữ trong cơ sở dữ liệu, nhưng vẫn chưa thấy cách WordPress lưu trữ dữ liệu quan trọng khi sử dụng nguyên tắc phân loại. Bài đăng tồn tại trong wp_posts và khi chúng tôi thực sự chỉ định danh mục và thẻ thông qua bảng điều khiển WordPress thì đó là bảng nối ghi lại thông tin đó. Mỗi hàng xác định mối quan hệ giữa một bài đăng (đối tượng) trong wp_posts và một thuật ngữ của một phân loại nhất định trong wp_term_taxonomy
wp_usersQuản lý người dùng của WordPress là một trong những tính năng mạnh nhất của nó và là tính năng giúp nó trở thành một khung ứng dụng tuyệt vời. Cái bàn này là động lực đằng sau nó
wp_usermetaBảng này lưu trữ bất kỳ thông tin nào khác liên quan đến người dùng. Bạn sẽ thấy các trường hồ sơ người dùng khác cho người dùng trong bảng điều khiển được lưu trữ tại đây
wp_optionsBảng tùy chọn là nơi lưu trữ tất cả cấu hình của trang web, bao gồm dữ liệu về chủ đề, plugin đang hoạt động, tiện ích con và dữ liệu được lưu trong bộ nhớ cache tạm thời. Đây thường là nơi các plugin và chủ đề khác lưu trữ cài đặt của chúng Bảng này là một ví dụ khác về bảng cặp khóa/giá trị dọc để cho phép bảng lưu trữ tất cả các loại dữ liệu cho nhiều mục đích khác nhau
wp_linksTrong thời kỳ viết blog ngày càng phổ biến, việc có một danh sách blog (liên kết đến các trang khác) trên trang web của bạn đã trở nên rất thịnh hành. Bảng này chứa tất cả các liên kết đó cho bạn Ngày nay, danh sách blog ngày càng được sử dụng ít hơn và kể từ WordPress 3. 5 việc quản lý các liên kết đã bị xóa khỏi giao diện người dùng quản trị. Bảng vẫn còn trong cơ sở dữ liệu để tương thích ngược và bạn có thể sử dụng giao diện người dùng quản lý liên kết cũ bằng cách sử dụng plugin này
Ai đó đã tạo ra một sơ đồ mối quan hệ thực thể hữu ích để giải thích mối quan hệ giữa tất cả các bảng và đăng nó trên WordPress codex. Điều này đã được tạo ra ở phiên bản 3. 8 nhưng cấu trúc vẫn hiện tại Nguồn. WordPressTham quan cơ sở dữ liệu nhiều trang WordPressKhi một trang WordPress được chuyển đổi thành cài đặt Nhiều trang, một “mạng” gồm các trang con được tạo. Trang web hiện tại được chuyển đổi thành trang con đầu tiên trong mạng. Cơ sở dữ liệu tự phân loại mạng thành một trang web (wp_site) và mỗi trang con dưới dạng một blog (wp_blogs) Một số bảng chỉ được sử dụng bởi một trang con và một bộ bảng mới được tạo mỗi khi một trang được thêm vào mạng. Mỗi bộ bảng được phân biệt bằng blog_id cho trang con được sử dụng trong tiền tố bảng. e. g. 3. Các bảng sau đây là trang con cụ thể
Các bảng wp_users và wp_usermeta trở thành toàn cầu trên các trang con trong mạng và trong quá trình cài đặt mạng, một vài cột bổ sung được thêm vào bảng wp_users
Các bảng sau được tạo trong quá trình cài đặt mạng để giúp quản lý mạng
wp_siteBảng này sẽ chứa một mạng để cài đặt mặc dù bảng được cấu trúc để cho phép nhiều mạng trong một cơ sở dữ liệu. Điều này chưa bao giờ được triển khai trong chính WordPress, nhưng có thể được quản lý bằng plugin như WP Multi Network hoặc Networks for WordPress
wp_sitemetaBảng này giống như wp_options cho mạng. Nó lưu trữ tất cả cấu hình và thông tin liên quan đến mạng, cũng như các dữ liệu khác, chẳng hạn như cài đặt cho các plugin hỗ trợ mạng
wp_blogsTất cả các trang con trong mạng được lưu trữ trong bảng này
wp_blogmetaĐược giới thiệu trong WordPress 5. 1, wp_blogmeta là bảng cơ sở dữ liệu mới để lưu trữ siêu dữ liệu được liên kết với các trang web. Điều này có nghĩa là bạn không cần sử dụng bảng tùy chọn để lưu trữ dữ liệu về trang web và phải sử dụng 4 trước khi truy cập nó
wp_blog_versionsKhi bạn nâng cấp phiên bản WordPress, trang web của bạn đang chạy đôi khi có những thay đổi về cơ sở dữ liệu. Nâng cấp cài đặt Nhiều trang lên phiên bản WordPress mới sẽ thực hiện những thay đổi đó đối với các bảng toàn cầu. Tuy nhiên, bộ bàn dành cho các site con trong hệ thống mạng cũng cần phải áp dụng nâng cấp. Bảng này ghi lại phiên bản cơ sở dữ liệu của từng blog trong mạng, vì vậy WordPress biết blog nào cần nâng cấp và cập nhật sau khi chạy xong
wp_signupsBảng này lưu trữ dữ liệu trên các blog đã được đăng ký nhưng chưa được kích hoạt khi mạng cho phép các trang web mới được đăng ký. Khi một trang web được kích hoạt, bản ghi sẽ bị xóa và một bản ghi được tạo trong wp_blogs
wp_registration_logBảng này ghi lại người dùng đăng ký một trang web mới sau khi nó được kích hoạt
Kết nối với cơ sở dữ liệu WordPressCách phổ biến nhất để kết nối với cơ sở dữ liệu WordPress là với phpMyAdmin, một công cụ quản trị dựa trên web cho cơ sở dữ liệu MySQL. Nó được cài đặt trên nhiều máy chủ web (thường thông qua cPanel), cũng như các môi trường phát triển cục bộ như MAMP Nếu bạn có quyền truy cập SSH vào máy chủ, bạn có thể làm theo hướng dẫn của chúng tôi để kết nối qua CLI hoặc sử dụng ứng dụng như TablePlus Cơ sở dữ liệu WordPress và tối ưu hóa truy vấnNếu trang web của bạn có nội dung cập nhật thường xuyên hoặc là một trang web bận rộn, thì cơ sở dữ liệu WordPress của bạn sẽ thực hiện nhiều câu lệnh CẬP NHẬT và XÓA theo thời gian, có thể dẫn đến các tệp dữ liệu MySQL bị phân mảnh. Điều này có thể gây ra kích thước cơ sở dữ liệu lớn không cần thiết và có thể ảnh hưởng đến hiệu suất của cơ sở dữ liệu Các bảng có thể được tối ưu hóa bằng cách sử dụng câu lệnh MySQL 5 hoặc bằng cách sử dụng một công cụ cơ sở dữ liệu như phpMyAdmin. Đối với các bảng sử dụng công cụ lưu trữ InnoDB, truy vấn sẽ xây dựng lại bảng để cập nhật số liệu thống kê chỉ mục và giải phóng dung lượng không sử dụng. Ví dụ
Có những điều khác bạn có thể làm để giữ kích thước của cơ sở dữ liệu WordPress ở kích thước hợp lý để giữ cho nó nhanh. Chức năng sửa đổi WordPress là một phần mạnh mẽ và hữu ích của trải nghiệm chỉnh sửa, nhưng vô số bản sửa đổi được lưu trữ theo mặc định, điều này thường không cần thiết và có thể được giới hạn bằng cách đặt hằng số sau
WordPress cũng tự động lưu các bài đăng, trang và loại bài đăng tùy chỉnh mỗi phút. Khoảng thời gian này có thể được kéo dài với hằng số sau ________số 8WordPress cũng sẽ lưu trữ các bài đăng đã xóa trong thùng rác trong 30 ngày trước khi xóa chúng đi. Khoảng thời gian này có thể được rút ngắn với hằng số sau
chỉ mụcMột trong những yếu tố quan trọng nhất đối với tốc độ và hiệu suất của cơ sở dữ liệu là chỉ mục cơ sở dữ liệu. Một chỉ mục có thể được tạo trong một hoặc nhiều cột, cho phép cơ sở dữ liệu nhanh chóng tìm kiếm dữ liệu trong các cột, cũng như sắp xếp thứ tự các cột một cách hiệu quả Cơ sở dữ liệu WordPress mặc định có các chỉ mục trên một số cột trên các bảng của nó. Ví dụ: bảng 6 có cột 7 chứa tham chiếu đến bài đăng mà phần meta liên quan đếnKhi tìm kiếm tất cả meta bài đăng cho một ID bài đăng cụ thể, chỉ mục này giúp truy vấn nhanh nhất có thể. Điều này rất quan trọng trên các bảng như bảng meta bài đăng, có thể có hàng triệu hàng dữ liệu Các chỉ mục phải là một cân nhắc quan trọng khi tạo các bảng WordPress tùy chỉnh, đặc biệt nếu một phần của plugin bạn định phân phối. Hiệu suất truy vấn bảng và SQL trên các trang web quy mô lớn nên được xem xét khi thiết kế cấu trúc bảng Tôi đã viết về việc thêm chỉ mục vào các bảng tùy chỉnh và xác định các truy vấn SQL chậm trong cơ sở dữ liệu WordPress trong bài viết của tôi về tối ưu hóa truy vấn SQLDi chuyển cơ sở dữ liệu WordPressVì WordPress lưu trữ URL trang web và đường dẫn tệp bên trong cơ sở dữ liệu ở nhiều nơi khác nhau nên việc di chuyển từ các máy chủ khác nhau hoặc di chuyển từ URL trang web phát triển sang URL trang web trực tiếp có thể khó khăn URL trang web được lưu trữ trong bảng 8 trong các tùy chọn 9 và 0, cột GUID 1, cũng như bất kỳ nơi nào chứa URL tuyệt đối cho hình ảnh và các nội dung khácMay mắn thay, các công cụ di chuyển tồn tại để giúp quá trình di chuyển cơ sở dữ liệu WordPress trở nên nhanh chóng và dễ dàng. Tiện dụng với WP CLI? 7Hoặc nếu bạn muốn sử dụng một plugin có giao diện người dùng mạnh mẽ để cho phép bạn xuất, nhập và đẩy và kéo cơ sở dữ liệu giữa các trang, thì hãy xem WP Migrate DB Pro Nó cũng có thể đảm nhiệm việc di chuyển phương tiện, plugin và chủ đề của bạn giữa các trang web cũng như sao lưu cơ sở dữ liệu của bạn trước khi thực hiện di chuyển. Sao lưu cơ sở dữ liệu WordPress của bạn phải là một phần của bất kỳ kế hoạch dự phòng cơ sở dữ liệu nào của nhà phát triển Bảo mật cơ sở dữ liệuTôi đã đề cập đến tầm quan trọng của sao lưu cơ sở dữ liệu. Đây là điều nên được thực hiện thường xuyên (cùng với thư mục nội dung wp của trang web của bạn) để đảm bảo bạn có thể hoàn nguyên về phiên bản trước nếu cơ sở dữ liệu của bạn bị hỏng hoặc bị tấn công Một khía cạnh quan trọng của điều này là sao lưu ngoài trang web tới nhà cung cấp đám mây như Amazon S3 hoặc DigitalOcean Spaces. Nếu máy chủ của bạn gặp sự cố, thì việc có quyền truy cập vào bản sao lưu gần đây được lưu trữ an toàn ở nơi khác là vô cùng quan trọng. SpinupWP cho phép bạn định cấu hình sao lưu trang web theo lịch trình cho các nhà cung cấp lưu trữ khác nhau Tim Nash đưa ra một quan điểm tuyệt vời về sự cần thiết phải thường xuyên kiểm tra các bản sao lưu của bạn, bởi vì một bản sao lưu là vô giá trị trừ khi nó có thể được khôi phục đúng cách kết thúcCơ sở dữ liệu WordPress là một phần quan trọng của bất kỳ trang web WordPress nào, vì vậy bạn nên hiểu càng nhiều về nó càng tốt Hy vọng rằng hướng dẫn này đã đề cập đến rất nhiều khía cạnh quan trọng của cơ sở dữ liệu WordPress có thể giúp bạn thăng cấp với tư cách là nhà phát triển WordPress Bạn có câu hỏi nào về Cơ sở dữ liệu WordPress không? Mục nhập này đã được đăng trong WP Migrate DB Pro, Cơ sở dữ liệu và được gắn thẻ WordPress, Phát triển, Mẹo phát triển WordPress, Cơ sở dữ liệu, Tham quan, MySQL Giới thiệu về tác giảIain Poulson Giám đốc sản phẩmIain là giám đốc sản phẩm có trụ sở tại miền nam nước Anh. Anh ấy cũng điều hành nhiều sản phẩm WordPress. Anh ấy giúp mọi người mua và bán doanh nghiệp WordPress và viết bản tin hàng tháng về xu hướng WordPress @polevaultweb. com
|