2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Termit "sharing" ja "tietokannan jakaminen" mainitaan usein tietokantakentässä viitaten yleensä samanlaisiin käsitteisiin, mutta eroavat yksityiskohdista. Tietokannan jakaminen tarkoittaa yleensä suuren tietokannan tietojen jakamista useisiin pienempiin tietokantoihin suorituskyvyn ja hallittavuuden parantamiseksi. Tietokannan jakaminen taas tarkoittaa laajemmin tietokantajärjestelmän hajottamista pienempiin osiin, mikä voi sisältää tietokannan jakamista tai muun tyyppistä jakamista, kuten taulukkojen jakamista.
Tässä ovat erot jakamisen ja tietokannan jakamisen välillä:
ominaisuus | Tietokannan jakaminen | Tietokannan jakaminen |
---|---|---|
määritelmä | Jaa tiedot useiden fyysisten tietokanta-instanssien kesken. | Jaa tietokantajärjestelmä pienempiin kokonaisuuksiin. |
Tarkoitus | Paranna suorituskykyä, skaalautuvuutta ja vikasietoisuutta. | Paranna suorituskykyä, hallintaa ja skaalautuvuutta. |
tyyppi | Sisältää pääasiassa vaaka- ja pystyhalkaisun. | Mukaan lukien alitietokanta, alitaulukko, vaakajako, pystyjako jne. |
jaettu vaakasuoraan | Se on jakamisen muoto, joka jakaa tiedot riveittäin. | Luultavasti osa tietokannan jakoa. |
jaettu pystysuunnassa | Se on jakamisen muoto, joka jakaa tiedot sarakkeittain. | Luultavasti osa tietokannan jakoa. |
täytäntöönpanon monimutkaisuus | Tarvitaan korkeampi lisäreitityslogiikka. | Se riippuu tietystä jakomenetelmästä. |
Vaikutus | Sovelluskerroksen koodia on ehkä muutettava, jotta se mukautuu alikirjastoon. | Sovelluskerroksen koodia on ehkä muutettava muutosten mukaiseksi. |
esimerkki | Tallenna eri käyttäjien tiedot eri tietokantoihin, esimerkiksi kohdista ne eri tietokantoihin käyttäjätunnuksen hash-arvon mukaan. | Jaa suuri taulukko useisiin pienempiin taulukoihin tai jaa tiedot pystysuunnassa eri taulukoiksi tai kirjastoiksi. Pystyjako: tallenna käyttäjätiedot ja tilaustiedot eri tietokantoihin horisontaalinen jako: tallenna tilaustaulukko eri tietokantoihin tilaustunnusalueen mukaan. |
- -- 分库示例:将订单信息按照用户ID的哈希值存储到不同的数据库
- -- 数据库1
- CREATE DATABASE orders_db_1;
- USE orders_db_1;
-
- CREATE TABLE orders (
- order_id INT PRIMARY KEY,
- user_id INT,
- total_amount DECIMAL(10, 2),
- order_date DATE
- );
-
- -- 数据库2
- CREATE DATABASE orders_db_2;
- USE orders_db_2;
-
- CREATE TABLE orders (
- order_id INT PRIMARY KEY,
- user_id INT,
- total_amount DECIMAL(10, 2),
- order_date DATE
- );
- -- 垂直拆分示例:将用户信息表和订单信息表分离到不同的数据库
- -- 主数据库
- CREATE DATABASE main_database;
- USE main_database;
-
- -- 用户信息表
- CREATE TABLE users (
- user_id INT PRIMARY KEY,
- username VARCHAR(50),
- email VARCHAR(100)
- );
-
- -- 订单信息表
- CREATE DATABASE orders_database;
- USE orders_database;
-
- CREATE TABLE orders (
- order_id INT PRIMARY KEY,
- user_id INT,
- total_amount DECIMAL(10, 2),
- order_date DATE
- );
Tietokannan jakamista ja tietokannan jakamista käytetään eri skenaarioissa vastaamaan tiettyihin liiketoiminnan tarpeisiin ja teknisiin haasteisiin:
Kohtauksia | Tietokannan jakaminen | Tietokannan jakaminen |
---|---|---|
Datamäärä on liian suuri | Kun yhden tietokannan tiedon määrä ylittää yhden palvelimen tallennus- tai käsittelykapasiteetin. | Kun tietokantataulukon koko vaikuttaa kyselyn suorituskykyyn. |
Suorituskyvyn pullonkaula | Kun luku- ja kirjoitustoimintoja esiintyy samanaikaisesti, yksi tietokanta ei voi tarjota riittävää suorituskykyä. | Yhden taulukon luku- ja kirjoitustoiminnot alkavat hidastua, mikä vaikuttaa sovelluksen vasteaikaan. |
Skaalautuvuusvaatimukset | Tietokantaa on laajennettava vaakasuunnassa suorituskyvyn parantamiseksi lisäämällä tietokantasolmuja. | Tiedot on jaettava pystysuunnassa yhden tietokannan kuormituksen vähentämiseksi ja hallinnan yksinkertaistamiseksi. |
Katastrofipalautus ja palautus | Hajautetussa ympäristössä katastrofipalautuskykyä ja järjestelmän nopeaa palautumista voidaan parantaa sirpaloinnin avulla. | Jakamalla tietokannan voit helpommin varmuuskopioida ja palauttaa osia tiedoistasi. |
Liiketoiminnan logiikkaan liittyvä | Se ei sovellu skenaarioihin, joissa on monimutkaisia ristikkäisiä taulukkokyselyitä, koska verkon latenssi ja monimutkaisuus voivat kasvaa tietokannan jakamisen jälkeen. | Tiedot voidaan jakaa liiketoimintalogiikan mukaan niin, että liittyvät tiedot tallennetaan yhteen ja tietokantojen väliset kyselyt vähenevät. |
Järjestelmäarkkitehtuurin säätö | Kun järjestelmäarkkitehtuurin on tuettava hajautettua laskentaa ja laajamittaista tietojenkäsittelyä. | Kun tietorakenteita on järjestettävä uudelleen tietyn kyselyn tai toiminnon optimoimiseksi. |
Kustannusten hallinta | Halpoja laitteistoresursseja voidaan hyödyntää sirpaloinnin avulla alentaakseen kokonaiskustannuksia. | Tietojen tallennus- ja käyttötapoja optimoimalla voidaan säästää tallennus- ja laskentaresursseja. |
Tietojen eristäminen ja turvallisuus | Tietojen fyysinen eristäminen voidaan saavuttaa maantieteellisen jakamisen avulla säännösten vaatimusten täyttämiseksi. | Tiedot voidaan jakaa herkkyyden tai käyttötaajuuden mukaan tarkemman suojauksen valvonnan saavuttamiseksi. |
Vaikka sekä tietokannan jakamista että tietokannan jakamista voidaan käyttää yllä olevien ongelmien ratkaisemiseen, niiden painopisteet ovat erilaiset. Alitietokannat ovat taipuvaisempia ratkaisemaan suuren mittakaavan tiedon tallentamisen ja käsittelyn sekä parantamaan järjestelmän skaalautuvuutta ja hätäpalautusominaisuuksia. Tietokannan jakaminen keskittyy enemmän tietojen organisoinnin ja käyttötapojen optimointiin ja tietokannan hallinnan yksinkertaistamiseen.