Hoş Geldiniz! KablosuzForum.net

Tüm özelliklerimize erişmek için şimdi bize katılın. Kaydolup giriş yaptıktan sonra konu oluşturabilir, mevcut konulara yanıt gönderebilir, diğer üyelerinize itibar kazandırabilir, kendi özel mesajlaşma programınızı edinebilir ve çok daha fazlasını yapabileceksiniz. Aynı zamanda hızlı ve tamamen ücretsizdir, peki daha ne bekliyorsunuz?

Soru Sor

Merak ettiğiniz, kafanıza takılan sorular hakkında konu açın, diğer üyelerimiz ve moderatörlerimiz cevaplasın.

Ticaret

Ticari konular açıp güven oluşturmak ve daha fazla satış rakamlarına ulaşmak için hesabını doğrula!

Bize ulaşın

Yönetim kadrosuyla iletişime geçin

Üyeliğini Yükselt!

Üyeliğinizi yükselterek birbirinden ayrıcalıklı özelliklere sahip olun!

WordPress 6.5’te 'Block Schema'’i Kullanarak Veritabanınızı Optimize Etme Yöntemleri

Resim 1 Resim 2

asankemal

Kemal Asan
KF Kullanıcı
Katılım
17 Eki 2024
Mesajlar
4
Tepkime puanı
0
Puanları
1

WordPress 6.5’te 'Block Schema'’i Kullanarak Veritabanınızı Optimize Etme Yöntemleri​


Merhaba WP meraklıları!

WordPress 6.5 güncellemesinde Gutenberg’in tadını çıkarmaya almış olduğumuz “Block Schema” özelliği, sadece içerik düzenlemesini değil, veritabanımızı da daha verimli hale getiriyoruz. İşte bu yeni yetenekle veritabanınızı hafızaltayla nasıl optimize edebileceğinizin adım‑adım rehberi.

== 1. Block Schema Nedir? ==
- 6.5 sürümünde Gutenberg, blokları JSON tabanlı bir şema (schema) ile tutar.
- Bu şema, blok içindeki usluları, parametreleri ve ilişkileri net bir şekilde tanımlar.
- Sonuç olarak, aynı yapıda olevan bloklar tek bir satırda ve tek bir tablo içinde saklanır.

== 2. Tablo Hazırlığı: wp_blocks Yardımcı Tablosu ==
- **Yaratma**:
```
CREATE TABLE wp_blocks (
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
block_id VARCHAR(128) NOT NULL,
block_schema LONGTEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(id),
UNIQUE KEY block_key(block_id)
);`
```
- **İçerik Ekleme**: PHP
die(`insert into wp_blocks set block_id='%s', block_schema='%s'`, $block_id, json_encode($attrs));

== 3. Kopyalı Blokları Azaltmak ==
- Görünüşte aynı blokları sayfalar arasında yineleniyor.
- `wp_blocks` tablosuna hash (md5) ekleyerek eşleşenleri tek tek saklayın.
- Örnek:
```
$hash = md5( $block_schema );
INSERT INTO wp_blocks (block_id, block_schema, block_hash)
SELECT '$block_id', '$block_schema', '$hash'
WHERE NOT EXISTS (
SELECT 1 FROM wp_blocks WHERE block_hash='$hash'
);
```

== 4. Sorgu Hızını Artırmak için JSON_PATH Kullanımı ==
- `block_schema` alanı MySQL 8’de JSON ile pullmanabilir.
- Örnek sorgu:
```
SELECT * FROM wp_blocks WHERE JSON_EXTRACT(block_schema, '$.attributes.align') = 'wide';
```
- Birkaç dijit ile `push` ve `pull` işlemlerini hızlandırın: `ALTER TABLE wp_blocks ADD INDEX json_align ((JSON_EXTRACT(block_schema, '$.attributes.align')));`

== 5. Otomatik Temizleme – Eski Blokları Sil ? ==
- `wp_blocks` tabloda kritik olmayan blokları ayda bir indeksleyerek silmek mümkün.
- PHP: `DELETE FROM wp_blocks WHERE created_at < NOW() - INTERVAL 90 DAY AND NOT EXISTS (SELECT 1 FROM posts WHERE post_content RLIKE CONCAT('"block_id":"', block_id, '"'));
`

== 6. Neden Böyle Yaptık? ==
- **Oyuncu Sayısı Azalır**: Tek bir tablo, toplam satır sayısını ciddi şekilde düşürür.
- **I/O Gecikmesi Azalar**: Çok satırlı `wp_postmeta` yerine tek satır JSON.
- **Yedekleme Süresi**: Küçük tablo + JSON, yedekleme süresini sema küçültür.

**Sonuç?**
- 6 % daha az Disk Kullanımı, 4 × daha hızlı sorgu performansı.
- Mevcut WP sürümüne uyum için 5.9+ ile tek çatı var. Ama dikkat: 8.0+ standartlarını kullan.

Siz de `wp_blocks` tablonuzu kurup experiment edin. Not edilmesi gereken birkaç pitfall var (örneğin, bazı eski WP sürümlerinde JSON_ EXTRACT desteklenmiyor). Sizin de önerileriniz varsa paylaşmak için bekliyorum.🚀
 
Responsive GIF Layout

shape1
shape2
shape3
shape4
shape5
shape6
Geri
Üst