Otomatik onaylama (autocommit) devre dışı bırakıldığında (örneğin, SET autocommit=0 komutuyla), veritabanı proxy'si okuma işlemleri dahil tüm sorguları birincil örnek üzerinden yönlendirir ve yükü bu örnekte yoğunlaştırır. İşlem bölme özelliği, uygulamada kod veya yapılandırma değişikliği gerektirmeden, bir işlemdeki ilk yazma işleminden önce gerçekleşen okuma isteklerini otomatik olarak salt okunur örneklere yönlendirerek yük dağılımı sağlar.
Ön koşullar
Başlamadan önce aşağıdaki ön koşulu yerine getirdiğinizden emin olun:
ApsaraDB RDS for MySQL örneğinizde veritabanı proxy'si özelliğinin etkinleştirilmiş olması. Ayrıntılar için bkz. Veritabanı proxy'si özelliğini etkinleştirme
Çalışma mantığı
Varsayılan olarak, veritabanı proxy'si doğruluğu korumak amacıyla bir işlem içindeki tüm istekleri birincil örneğe gönderir. Otomatik onaylama devre dışı bırakıldığında her sorgu örtük bir işlem içinde çalıştırılır; bu durum tüm yükün birincil örnek üzerinde toplanmasına neden olur.

İşlem bölme özelliği bu davranışı değiştirir: Proxy, yalnızca bir yazma işlemi gerçekleştiğinde birincil örnek üzerinde bir işlem başlatır. İlk yazma işleminden önceki tüm okuma istekleri, bir yük dengeleyici aracılığıyla salt okunur örneklere yönlendirilir. Varsayılan yalıtım düzeyi READ COMMITTED kullanılıyor ve işlemlerin otomatik onaylama modu devre dışı bırakılıyorsa sistem yalnızca yazma işlemleri için bir işlem başlatır.
BEGIN TRANSACTION veya START TRANSACTION ile başlatılan açık işlemlerin desteklenmesi, örneğinizin oluşturulma tarihine bağlıdır:
31 Temmuz 2024 tarihinde veya sonrasında oluşturulan örnekler: Hem açık hem de örtük işlemler bölünebilir.
31 Temmuz 2024 tarihinden önce oluşturulan örnekler: Yalnızca örtük işlemler bölünebilir.
Yönlendirme kuralları
Salt okunur örneklere yönlendirilenler:
Bir işlemdeki ilk yazma işleminden önce gerçekleşen SELECT deyimleri
Birincil örneğe yönlendirilenler:
İşlemdeki ilk yazma isteği (işlem birincil örnekte bu noktada başlar)
Açık bir yazma işlemindeki sonraki tüm istekler (SELECT, UPDATE, INSERT, DELETE, COMMIT)
Aşağıdaki tabloda, otomatik onaylamanın devre dışı olduğu ve örtük olarak başlatılan tipik bir işlem için yönlendirme sırası gösterilmektedir:
| SQL deyimi | Yönlendirildiği hedef | Açıklamalar |
|---|---|---|
| SELECT | Salt okunur RDS örneği | İlk yazma öncesi okuma isteği |
| SELECT | Salt okunur RDS örneği | İlk yazma öncesi okuma isteği |
| UPDATE, INSERT veya DELETE | Birincil RDS örneği | İlk yazma — işlem burada başlar |
| SELECT | Birincil RDS örneği | İlk yazma sonrası okuma isteği |
| UPDATE, INSERT veya DELETE | Birincil RDS örneği | Yazma isteği |
| SELECT | Birincil RDS örneği | İlk yazma sonrası okuma isteği |
| COMMIT | Birincil RDS örneği | İşlem onaylama |
İşlem bölme özelliğini etkinleştirme veya devre dışı bırakma
İşlem bölme özelliği genel tutarlılığı garanti etmez. Bu özelliği etkinleştirmeden önce iş yükünüzün bu ödünleşimi tolere edip edemeyeceğini doğrulayın.
Örnekler sayfasına gidin. Üst gezinti çubuğunda RDS örneğinizin bulunduğu bölgeyi seçin ve ardından örnek ID değerine tıklayın.
Sol gezinme bölmesinde Database Proxy seçeneğine tıklayın.
Connection Information bölümünde değiştirmek istediğiniz proxy uç noktasını bulun ve Actions sütunundaki Modify Configuration seçeneğine tıklayın.
İletişim kutusunda, Transaction Splitting yanındaki Enable veya Disable seçeneğine tıklayın.
Yeni ayar yalnızca yeni bağlantılar için geçerlidir.
API referansı
| İşlem | Açıklama |
|---|---|
| DescribeDBProxy | Veritabanı proxy'si ayrıntılarını sorgular |
| DescribeDBProxyEndpoint | Veritabanı proxy'si uç nokta bilgilerini sorgular |
| ModifyDBProxyEndpoint | Veritabanı proxy'si uç nokta ayarlarını değiştirir |