MySQL veritabanı deneyi-dikey bölme ve yatay bölme nedir?

Genel Bakış

Genellikle büyük miktarda veriye sahip tabloları böleriz ve sıklıkla birkaç tabloya erişiriz. Bölünmemişlerse, büyük olasılıkla bir sorgunun tabloyu kilitlemesi ve diğer işlemlerin imkansız olmasına neden olması, tablonun bölünmesinin bir nedenidir.

Tablo bölümü

Dikey segmentasyon uygulama senaryosu: Sıcak veriler bir tabloya yerleştirilir ve soğuk veriler bir tabloya yerleştirilir.

Soğuk veriler, verileri daha iyi sorgulamak için MyIsam kullanır. Innodb kullanan aktif veriler daha iyi bir güncelleme hızına sahip olabilir. Bazı özel aktif veriler için ayrıca memcache, redis ve diğer önbellekleri kullanmayı düşünebilir ve birikim belirli bir miktara ulaştıktan sonra veritabanını güncelleyebilirsiniz. Dikey bölünmüş veri satırlarının sayısı aynıdır, ancak tablo yapısı farklıdır ve uygulanması kolaydır.

Bölünmüş ufuk uygulama senaryosu: 1 milyon veri satırı içeren bir tablo, 10.000 satırlık veri içeren 100 tabloya bölünebilir Yatay bölünmüş tabloların yapısı aynıdır ve veri satırlarının sayısı farklı olabilir.

Prensip çok basittir, basit çizim aşağıdaki gibidir:

Yatay bölme elde etmek için birleştirme depolama motorunu kullanın

Genellikle, tablolar oluşturmak için InnoDB motorunu kullanırız ve alt tablo yaparken diğerlerini kullanmamız gerekir. Aşağıdaki basit test:

adım:

  • 1. Bir kullanıcı1 tablosu oluşturun, ENGINE = MyISAM.
  • 2. Aynı yapıya sahip bir kullanıcı2 tablosu oluşturun, ENGINE = MyISAM.
  • 3. Bir kullanıcı tablosu oluşturun, ENGINE = MRG_MYISAM ve user1 ile user2'yi birleştirin

Navicat aracını kullanıyorsanız, sadece seçin

İlgili sql ifadesi

// user1 tablosu oluştur TABLO OLUŞTUR "kullanıcı1" ( `id` int (11) BOŞ DEĞİL AUTO_INCREMENT, `isim` varchar (255) VARSAYILAN NULL, BİRİNCİL ANAHTAR ("kimlik") ) MOTOR = MyISAM AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;

// Kullanıcı2 tablosu oluştur TABLO OLUŞTUR "kullanıcı2" ( `id` int (11) BOŞ DEĞİL AUTO_INCREMENT, `isim` varchar (255) VARSAYILAN NULL, BİRİNCİL ANAHTAR ("kimlik") ) MOTOR = MyISAM AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8;

// Tablo kullanıcısı oluştur TABLO OLUŞTUR "kullanıcı" ( `id` int (11) BOŞ DEĞİL AUTO_INCREMENT, `isim` varchar (255) VARSAYILAN NULL, BİRİNCİL ANAHTAR ("kimlik") ) MOTOR = MRG_MyISAM DEFAULT CHARSET = utf8 UNION = (`kullanıcı1`,` kullanıcı2`);

Veri testi ekle

1. Veri girin

kullanıcı1 değerlerine ekleyin (1, 'a'); kullanıcı1 değerlerine (2, 'b') ekleyin; kullanıcı1 değerlerine (3, 'c') ekleyin; kullanıcı1 değerlerine (4, 'd') ekleyin; kullanıcı2 değerlerine ekle (1, 'a'); kullanıcı2 değerlerine (2, 'b') ekleyin; kullanıcı2 değerlerini girin (3, 'c'); kullanıcı2 değerlerini (4, 'd') ekleyin;

2. Kullanıcı tablosunu görüntüleyin

Yalnızca kullanıcı tablosunu sorgulayın

Kullanıcı tablosunun salt okunur bir tablo olduğu ve sorgulanabildiği görülebilir, bu da kullanıcı1 ve kullanıcı2'yi sorgulamamızı engellemez.

İşte temelde kavramı anlamak için basit bir yatay bölünme örneği. Daha sonra daha fazla devop ve DBA içeriği paylaşacağım ve ilgilenen arkadaşlar buna dikkat edebilir ~

Zhang Bo: Didi "Demir Adam" Cheng Wei "Hediye"
önceki
Oracle deneyi - dört Oracle sayı yuvarlama işlevini tartışın
Sonraki
Carrefour, Suning'e 4,8 milyar sattı ve batan çokuluslu şirketlerin hepsi aynı hatayı yaptı.
1200! Hebei "Üç Destek ve Bir Destek" kayıt olmak üzere, en son iş listesi
MySQL oturum kilidi bekleme ilişkisi prensibinin ayrıntılı açıklaması-4 temel tablo
4,8 milyar Carrefour'u satın aldı ve yılda 1 milyar zarar etti! Suning'in parası nereden geldi?
Oracle grafik arabirimi birleşik bir çözümü çağıramaz - VNC hizmeti
Linux komutlarını ayrıntılı olarak açıklayın --- htpasswd ile bir şifre dosyası nasıl oluşturulur?
Wong Lo Katın "Yağsız Sütlü Çay" lansmanının arkasındaki sebep nedir?
Mysql veritabanı-global, veritabanı katmanı, yüzey katmanı, sütun katmanı ve alt program katmanının beş katmanlı izinlerini ayrıntılı olarak açıklayın
Devlerin imrendiği batan pazar, Pinduoduo'nun bariz avantajları var! Kırsal kullanıcılar: çok uygun
Açık kaynaklı bir yeniden görselleştirme aracı önerin - Redis Desktop Manager
Didi hala oturamıyor mu? Birkaç milyar kan kaybından sonra, Tencent kişisel olarak sona erdi
İnatçı bir hastalığı hatırlayın: Checksum yardımcı programı'shasum 'çözüm bulunamadı
To Top