Agak terlambat untuk menjawab ini, tetapi karena muncul untuk pencarian yang relevan, ini akan berguna bagi seseorang:
WordPress menggunakan skema basis data EAV untuk bagian dari implementasi basis datanya. Ini memengaruhi data, dan pengguna. (Mereka disimpan dalam tabel terpisah)
Untuk menjelaskannya dari sudut data:
Seiring dengan rincian terkait pos yang dapat diakses langsung di wp_posts, banyak meta diposkan ke tabel wp_postmeta untuk setiap pos. Data apa pun yang relevan dengan pos (atau jenis pos khusus).
Masalahnya adalah, jika Anda memiliki HEAPS posting atau halaman (atau posting / data kustom), menjadi sangat lambat untuk mencari properti apa pun yang ditemukan dalam meta. Anda pertama-tama mencari semua entri dalam tabel meta untuk kriteria yang Anda butuhkan, lalu mendapatkan posting yang relevan dari tabel. Kicker adalah bahwa Anda perlu mencari kriteria SETIAP secara terpisah. Jadi satu pencarian untuk tag, Anda mendapatkan posting dengan nilai X untuk 'meta1', kemudian Anda mencari kriteria kedua, katakanlah, customcriteria dan dapatkan id id dengan customcriteriavalue1 di customcriteria, DAN kemudian ambil persimpangan ini dan kemudian pergi untuk mendapatkan rincian posting dari tabel posting dengan persimpangan itu.
Sebagai contoh - masukkan 30.000 produk ke dalam WooCommerce, dan Anda akan memiliki ~ 1.800.000 baris di wp_postmeta seperti dijelaskan di bawah ini:
Posting meta vs tabel database terpisah
Jadi, tidak hanya ini akan membuat pencarian menjadi sangat sangat tidak efisien (terutama ketika Anda bergabung sendiri di wp_postmeta untuk beberapa kriteria), tetapi juga meminta satu baris dari antara 1,8 juta baris saja yang menyebabkan kinerja meningkat.
Kekurangan skema EAV.
Jadi dengan banyak posting, implementasi WordPress db membuat pencarian rumit menjadi sangat lambat.
Menjalankan situs WordPress dengan ribuan posting cukup bisa dilakukan, jika Anda menggunakan plugin caching. Anda bahkan bisa lebih. Tetapi pencarian akan menjadi masalah.
............
Sama halnya dengan pengguna - wp_usermeta juga menggunakan format EAV yang sama. Jadi, jika Anda mendapatkan banyak pengguna, dan memiliki banyak plugin yang menyimpan berbagai data pengguna di wp_usermeta, Anda akan mendapatkan kinerja yang sama.
Belum lagi dengan begitu banyak pengguna kemungkinan bahwa Anda akan memiliki jumlah posting yang tinggi - kecuali jika aplikasi Anda ada hubungannya dengan sebagian besar pengguna (CRM dll), dan Anda memilih untuk menyimpan data pengguna Anda di wp_usermeta daripada wp_postmeta . (Meskipun tidak mungkin).
.........
Ada beberapa plugin yang mencoba mengatasi masalah ini, seperti Meta Accelerator.
https://wordpress.org/plugins/meta-accelerator/
Plugin ini mengambil data apa pun untuk setiap jenis posting yang Anda pilih dan menempatkannya di tabel datar. Ini mempercepat pencarian banyak, dan juga mempercepat permintaan nilai tunggal.
Tapi plugin itu masih dalam masa pertumbuhan.
Atau, Anda dapat menginstal ElasticSearch di server dan menggunakan plugin ElasticPress atau plugin lain yang mengintegrasikannya ke WordPress untuk mempercepat pencarian tersebut.
PHP
porsi tumpukan tidak akan menjadi masalah Anda (Facebook dibuat dengan PHP yang dimodifikasi), tetapiMySQL
sangat mungkin membatasi.Saya telah menemukan leher botol untuk berapa banyak pengguna Wordpress yang dapat Anda miliki adalah batas waktu PHP mulai berlaku pada halaman admin pengguna.
Dengan asumsi semua pengguna Anda memiliki setidaknya 1 peran, mereka memiliki
wp_capabilities
entri diuser_metadata
tabel dengan array peran berseri.Halaman admin menunjukkan jumlah berapa banyak pengguna dengan masing-masing jenis peran sehingga harus memuat setiap wp_capabilities array serial, unserialize itu dan kemudian menunjukkan jumlah total.
Ketika saya memiliki 300.000 pengguna, halaman admin pengguna membutuhkan waktu 44 detik untuk membangun.
Ini berarti setiap pengguna menambahkan 0,00014666666 detik ke waktu pemuatan halaman.
Dengan asumsi batas waktu PHP Anda adalah 60 detik yang akan membatasi sekitar 400.000 pengguna.
Namun saya menjalankan server yang cukup lama dan lambat. Perangkat keras yang lebih cepat akan meningkatkan banyak hal.
sumber