A megosztás ( angolul sharding ) egy olyan megközelítés, amely magában foglalja az adatbázisok , egyedi objektumok vagy keresőmotor- indexek független szegmensekre való felosztását, amelyek mindegyikét az adatbázis-kiszolgáló külön példánya vezérli , általában külön számítási csomóponton.
A particionálástól eltérően , amely az adatbázis-objektumok részeinek külön tárolását foglalja magában egyetlen DBMS-példány vezérlése alatt, a felosztás lehetővé teszi az elosztott számítási technika használatát , de nehezebb megvalósítani, mivel több példány ilyen módon történő összehangolását igényli. hogy a szegmensek teljes halmazával való interakció úgy történik, mint egyetlen adatbázis esetében.
Előfordulhat, hogy az adatbázis egyes adatai az összes szilánkban, mások pedig csak egy vagy néhány shardban találhatók. Például a lassan változó dimenzióként használt kis táblázatok teljes mértékben megjelenhetnek az egyes szilánkokban, míg a nagy ténytáblákat valamilyen kulcs egyenletesen particionálja a szilánkok között. Az összes szilánkon lévő adatok gyakori elérése hatékonyabb csatlakozási műveleteket tesz lehetővé, miközben biztosítja, hogy az összes szilánk szinkronban frissüljön.
A sharding technikát széles körben használják a NoSQL DBMS-ekben (például Cassandra , Couchbase , MongoDB ), a masszívan párhuzamos elemző DBMS-ekben ( Teradata Database , Netezza , Greenplum ), vízszintesen méretezhető keresőmotorokban ( Elasticsearch , Solr ). Ezenkívül a technikát néhány hagyományos relációs DBMS -ben implementálják (Sharing opció az Oracle Database -ben ). A szegmentálást nem támogató DBMS-ek esetében ennek a technikának a megvalósításához a kérelmeket a DBMS több példányához irányítják az alkalmazás oldaláról; Számos köztesszoftver -projekt létezik, amely transzparens felosztást valósít meg ( dbShards , Apache ShardingShere , ScaleArc , MaxScale for MariaDB ).