女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)庫(kù)的中間件有啥用?

數(shù)據(jù)分析與開(kāi)發(fā) ? 來(lái)源:Coder的技術(shù)之路 ? 作者:Coder的技術(shù)之路 ? 2021-06-21 16:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Part1 數(shù)據(jù)庫(kù)中間件有啥用

有一天,你去三亞玩耍,就想玩?zhèn)€沖浪,即時(shí)你不差錢(qián),難道還要自己采買(mǎi)快艇、滑板等等裝備來(lái)滿足這為數(shù)不多的心血來(lái)潮么。租一個(gè)就行了嘛。這其實(shí)就是連接池的作用。

數(shù)據(jù)庫(kù)中間件可以理解為是一種具有連接池功能,但比連接池更高級(jí)的、帶很多附加功能的輔助組件,不僅可以租沖浪板,還可以提供地點(diǎn)推薦、上保險(xiǎn)等等各類(lèi)服務(wù)。

從網(wǎng)上的資料看,zdal應(yīng)該算是半開(kāi)源的,好像是之前開(kāi)源過(guò),但后續(xù)沒(méi)有準(zhǔn)備維護(hù),然后就刪除了,不過(guò)github被fork下來(lái)好多,隨便一搜就是一片,當(dāng)前,只是老的版本。目前螞蟻內(nèi)部的zdal好像已經(jīng)更新到zdal5了吧,那咱可就看不到了。

越復(fù)雜的系統(tǒng),數(shù)據(jù)庫(kù)中間件的作用越大。就拿zdal來(lái)說(shuō),它提供分庫(kù)分表,結(jié)果集合并,sql解析,數(shù)據(jù)庫(kù)failover動(dòng)態(tài)切換等數(shù)據(jù)訪問(wèn)層統(tǒng)一解決方案。下面就一起來(lái)看下,其內(nèi)部實(shí)現(xiàn)是怎么樣的。

Part2 架構(gòu)剖析之高屋建瓴

c87433b8-d145-11eb-9e57-12bb97331649.png

2.1 整體概述

如上圖所示,zdal有四個(gè)重要的組成部分:

價(jià)值體現(xiàn)--客戶端Client包。對(duì)外暴露基本操作接口,用于業(yè)務(wù)層簡(jiǎn)單黑盒的操作數(shù)據(jù)源;業(yè)務(wù)只和client交互,動(dòng)態(tài)切換/路由等邏輯只需要進(jìn)行規(guī)則配置,相關(guān)邏輯由zdal實(shí)現(xiàn)。

核心功能--連接管理datasource包。最核心的能力,提供多種類(lèi)型數(shù)據(jù)庫(kù)的連接管理;不管功能多花哨,最終目的還是為了解決數(shù)據(jù)庫(kù)連接的問(wèn)題。

關(guān)鍵能力--SQL解析parser包。基礎(chǔ)SQL解析能力;解析sql類(lèi)型、字段名稱(chēng)、數(shù)據(jù)庫(kù)等等,配合規(guī)則進(jìn)行路由

擴(kuò)展能力--庫(kù)表路由rule包。根據(jù)parser解析出的字段確定邏輯庫(kù)表和物理庫(kù)表。

2.2 組件圖看架構(gòu)

組件圖對(duì)整體架構(gòu)和各組件及相互聯(lián)系的理解可以起到很好的幫助。一個(gè)簡(jiǎn)版的組件圖畫(huà)了好久,還有不少錯(cuò),不過(guò)大概是這么個(gè)意思,哎,基本功要丟~

c8833368-d145-11eb-9e57-12bb97331649.png

對(duì)照上圖可以比較清晰的看到:

Client包對(duì)應(yīng)用層暴露的數(shù)據(jù)源、負(fù)責(zé)監(jiān)聽(tīng)配置動(dòng)態(tài)變更的監(jiān)聽(tīng)組件、負(fù)責(zé)加載組織各部分的配置組件、負(fù)責(zé)加載spring bean 和庫(kù)表規(guī)則的配置組件;

Client中加載了規(guī)則組件,實(shí)現(xiàn)邏輯表和數(shù)據(jù)庫(kù)的路由規(guī)則。

Client中的庫(kù)表配置調(diào)用datasource中的數(shù)據(jù)源管理服務(wù)并構(gòu)建連接池的連接池;

Client中的SqlDispatcher服務(wù)調(diào)用SQL解析組件實(shí)現(xiàn)SQL解析。

Part3 細(xì)節(jié)剖析之一葉知秋

3.1 配置加載和bean初始化

大部分情況下,我們使用如mybatis這樣的ORM框架來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作,其實(shí)不管是ORM還是其他方式,應(yīng)用層都需要對(duì)數(shù)據(jù)源進(jìn)行配置。

所以,client對(duì)外暴露了一個(gè)符合JDBC標(biāo)準(zhǔn)的datasource數(shù)據(jù)源,用來(lái)滿足應(yīng)用層ORM等框架配置數(shù)據(jù)源的要求--ZdalDataSource

c89b1afa-d145-11eb-9e57-12bb97331649.png

//只提供了一個(gè)init方法,這也是spring啟動(dòng)時(shí)時(shí),必須要調(diào)用的初始化方法,所有功能,都從這里開(kāi)始
public class ZdalDataSource extends AbstractZdalDataSource implements DataSource{
    public void init() {
        try {
            super.initZdalDataSource();
        } catch (Exception e) {
            CONFIG_LOGGER.error("...");
            throw new ZdalClientException(e);
        }
    }

ZdalDataSource#init()方法即為配置加載的核心入口,init中負(fù)責(zé)加載spring配置,根據(jù)配置初始化數(shù)據(jù)源,并創(chuàng)建連接池,同時(shí),將邏輯表和物理庫(kù)的對(duì)應(yīng)關(guān)系都維護(hù)起來(lái)供后續(xù)路由調(diào)用。

/*父類(lèi)的init方法*/
protected void initZdalDataSource() {
    /*用FileSystemXmlApplicationContext方式加載配置文件中的數(shù)據(jù)源和規(guī)則,轉(zhuǎn)化成zdalConfig對(duì)象*/
    this.zdalConfig = ZdalConfigurationLoader.getInstance().getZdalConfiguration(appName,dbmode, appDsName, configPath);
    this.dbConfigType = zdalConfig.getDataSourceConfigType();
   this.dbType = zdalConfig.getDbType();
   //初始化數(shù)據(jù)源
   this.initDataSources(zdalConfig);
   this.inited.set(true);
    }
}

從上面的類(lèi)圖和這里的兩個(gè)入口方法大概了解到zdal配置加載的啟動(dòng)流程。下面我們就來(lái)詳細(xì)看一下,讀寫(xiě)分離和分庫(kù)分表的規(guī)則是怎么被加載,怎么起作用的。

3.2 細(xì)說(shuō)讀寫(xiě)分離

讀寫(xiě)分離配置的加載

首先,我們需要有數(shù)據(jù)源的相關(guān)配置,如下圖:

c8b7a6b6-d145-11eb-9e57-12bb97331649.png

此XML配置會(huì)在init方法被調(diào)用時(shí),被初始化,解析成ZdalConfig類(lèi)的屬性,ZdalConfig類(lèi)的主要成員見(jiàn)下面代碼:

public class ZdalConfig {
    /** key=dsName;value=DataSourceParameter 所有物理數(shù)據(jù)源的配置項(xiàng),比如用戶名,密碼,庫(kù)名等 */
    private Map dataSourceParameters = new ConcurrentHashMap();
    /** 邏輯數(shù)據(jù)源和物理數(shù)據(jù)源的對(duì)應(yīng)關(guān)系:key=logicDsName,value=physicDsName */
    private Map              logicPhysicsDsNames  = new ConcurrentHashMap();
    /** 數(shù)據(jù)源的讀寫(xiě)規(guī)則,比如只讀,或讀寫(xiě)等配置*/
    private Map              groupRules           = new ConcurrentHashMap();
    /** 異常轉(zhuǎn)移的數(shù)據(jù)源規(guī)則*/
    private Map              failoverRules        = new ConcurrentHashMap();
    //一份完整的讀寫(xiě)分離和分庫(kù)分表規(guī)則配置
    private AppRule                          appRootRule;

可以看到,xml中的規(guī)則,被解析到xxxRules里。這里以groupRules為例,failover同理。

下一步則是通過(guò)解析得到的zdalConfig 來(lái)初始化數(shù)據(jù)源:

protected final void initDataSources(ZdalConfig zdalConfig) {
    //DataSourceParameter中存的是數(shù)據(jù)源參數(shù),如用戶名密碼,最大最小連接數(shù)等
    for (Entry entry : zdalConfig.getDataSourceParameters().entrySet()) {
        try {
           //初始化連接池
           ZDataSource zDataSource = new ZDataSource(/*設(shè)置最大最小連接數(shù)*/createDataSourceDO(entry.getValue(),zdalConfig.getDbType(), appDsName + "." + entry.getKey()));
           this.dataSourcesMap.put(entry.getKey(), zDataSource);
        } catch (Exception e) {
            //...
        }
   }
  //其他分支略,只看最簡(jiǎn)單的分組模式
  if (dbConfigType.isGroup()) {
       //讀寫(xiě)配置賦值
       this.rwDataSourcePoolConfig = zdalConfig.getGroupRules();
       //初始化多份讀庫(kù)下的負(fù)載均衡
       this.initForLoadBalance(zdalConfig.getDbType());
  }
  //注冊(cè)監(jiān)聽(tīng):為了滿足動(dòng)態(tài)切換
  this.initConfigListener();
}

initForLoadBalance的方法如下:

private void initForLoadBalance(DBType dbType) {
    Map dsSelectors = this.buildRwDbSelectors(this.rwDataSourcePoolConfig);
    this.runtimeConfigHolder.set(new ZdalRuntime(dsSelectors));
    this.setDbTypeForDBSelector(dbType);
}

可以看到,首先構(gòu)建出了DB選擇器,然后賦值給了runtimeConfigHolder供運(yùn)行時(shí)獲取。而構(gòu)建DB選擇器的時(shí)候,其實(shí)是按讀寫(xiě)兩個(gè)維度,把所有數(shù)據(jù)源都構(gòu)建了一遍,即group_r和group_w下都包含5個(gè)數(shù)據(jù)源,只不過(guò)各自的權(quán)重不一樣:

//比如按上面的配置寫(xiě)庫(kù)只有一個(gè),但是也會(huì)包含全數(shù)據(jù)源

group_0_w_0 :< bean:read0DataSource , writeWeight:0>
group_0_w_1 :< bean:writeDataSource , writeWeight:10>
group_0_w_2 :< bean:read1DataSource , writeWeight:0>
group_0_w_3 :< bean:read2DataSource , writeWeight:0>
group_0_w_4 :< bean:read3DataSource , writeWeight:0>

//上述就是寫(xiě)相關(guān)的DBSelecter的內(nèi)容。

讀寫(xiě)分離怎么起作用

以delete為例,更新刪除是要操作寫(xiě)庫(kù)的

 public void delete(ZdalDataSource dataSource) {
     String deleteSql = "delete from test";
     Connection conn = null;
     PreparedStatement pst = null;
     try {
        conn = dataSource.getConnection();
        pst = conn.prepareStatement(deleteSql);
        pst.execute();
     } catch (Exception e) {
            //...
     } finally {
           //資源關(guān)閉
     }
 }

getConnection會(huì)從上文中提到的runtimeConfigHolder中獲取DBSelecter,然后執(zhí)行execute方法

 public boolean execute() throws SQLException {
    SqlType sqlType = getSqlType(sql);
    // SELECT相關(guān)的就選擇group_r對(duì)應(yīng)的DBSelecter
   if (sqlType == SqlType.SELECT || sqlType == SqlType.SELECT_FOR_UPDATE|| sqlType == SqlType.SELECT_FROM_DUAL) {
     //略
    return true;
    //update/delete相關(guān)的就選擇group_w對(duì)應(yīng)的DBSelecter
  } else if (sqlType == SqlType.INSERT || sqlType == SqlType.UPDATE|| sqlType == SqlType.DELETE) {
       if (super.dbConfigType == DataSourceConfigType.GROUP) {
           executeUpdate0();
       } else {
           executeUpdate();
      }
      return false;
  } 
}

如果是讀取相關(guān)的,那就選_r的DBSelecter,如果是寫(xiě)相關(guān)的,那就選_W的DBSelecter。那么executeUpdate0中是怎么執(zhí)行區(qū)分讀寫(xiě)數(shù)據(jù)源的呢,其實(shí)就是把這一組的數(shù)據(jù)源根據(jù)權(quán)重篩選一遍。

// WeightRandom#select(int[], java.lang.String[])
private String select(int[] areaEnds, String[] keys) {
   //這里的areaEnds數(shù)組,是一個(gè)累加范圍值數(shù)據(jù)
   //比如三個(gè)庫(kù)權(quán)重    10   9   8
   //那么areaEnds就是  10  19  27 是對(duì)每個(gè)權(quán)重的累加,最后一個(gè)值是總和
   int sum = areaEnds[areaEnds.length - 1];
   //這樣隨機(jī)出來(lái)的數(shù),是符合權(quán)重分布的
   int rand = random.nextInt(sum);
   for (int i = 0; i < areaEnds.length; i++) {
       if (rand < areaEnds[i]) {
           return keys[i];
   }
   return null;
}

Part4 總結(jié)

本篇文章,把阿里數(shù)據(jù)庫(kù)中間件相關(guān)的組件和加載流程進(jìn)行了總結(jié),就一個(gè)最基本的分組讀寫(xiě)分離的流程,對(duì)內(nèi)部實(shí)現(xiàn)進(jìn)行了闡述。說(shuō)是解析,其實(shí)是提供給大家一種閱讀的思路,畢竟篇幅有限,如果對(duì)中間件感興趣的同學(xué),可以fork下代碼,按上述邏輯自己閱讀下。

看源碼時(shí),比如dubbo這些中間件其實(shí)是比較容易入手的,因?yàn)樗麄兌家劳杏赟pring進(jìn)行JavaBean的裝載,所有,對(duì)Spring容器暴露的那些init、load方法,就是很好的切入點(diǎn)。個(gè)人思路,希望對(duì)大家有所幫助。

責(zé)任編輯:lq6

,>,>,>,>,>,>,>,>,>,>
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 中間件
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    18451
  • 數(shù)據(jù)庫(kù)
    +關(guān)注

    關(guān)注

    7

    文章

    3922

    瀏覽量

    66149

原文標(biāo)題:一款優(yōu)秀數(shù)據(jù)庫(kù)中間件的不完全解析

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MongoDB數(shù)據(jù)庫(kù)文件丟失的數(shù)據(jù)恢復(fù)案例

    MongoDB數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)環(huán)境: 一臺(tái)操作系統(tǒng)為Windows Server的虛擬機(jī)上部署MongoDB數(shù)據(jù)庫(kù)。 MongoDB數(shù)據(jù)庫(kù)故障: 工作人員在MongoDB服務(wù)仍
    的頭像 發(fā)表于 07-01 11:13 ?139次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—MongoDB<b class='flag-5'>數(shù)據(jù)庫(kù)</b>文件丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)被加密如何恢復(fù)數(shù)據(jù)

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server數(shù)據(jù)庫(kù)被加密,無(wú)法使用。 數(shù)據(jù)庫(kù)MDF、LDF、log日志文件名字被篡改。
    的頭像 發(fā)表于 06-25 13:54 ?133次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b>被加密如何恢復(fù)<b class='flag-5'>數(shù)據(jù)</b>?

    STM32MP131C CbueMX中間件無(wú)RTOS選項(xiàng)是怎么回事?

    如題,STM32MP131C CbueMX中間件無(wú)RTOS選項(xiàng),對(duì)比選擇STM32MP157芯片是有的,怎么查這部分資料呢
    發(fā)表于 03-14 06:59

    分布式云化數(shù)據(jù)庫(kù)哪些類(lèi)型

    分布式云化數(shù)據(jù)庫(kù)哪些類(lèi)型?分布式云化數(shù)據(jù)庫(kù)主要類(lèi)型包括:關(guān)系型分布式數(shù)據(jù)庫(kù)、非關(guān)系型分布式數(shù)據(jù)庫(kù)、新SQL分布式
    的頭像 發(fā)表于 01-15 09:43 ?474次閱讀

    MySQL數(shù)據(jù)庫(kù)的安裝

    MySQL數(shù)據(jù)庫(kù)的安裝 【一】各種數(shù)據(jù)庫(kù)的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】MySQL 介紹
    的頭像 發(fā)表于 01-14 11:25 ?556次閱讀
    MySQL<b class='flag-5'>數(shù)據(jù)庫(kù)</b>的安裝

    數(shù)據(jù)庫(kù)是哪種數(shù)據(jù)庫(kù)類(lèi)型?

    數(shù)據(jù)庫(kù)是一種部署在虛擬計(jì)算環(huán)境中的數(shù)據(jù)庫(kù),它融合了云計(jì)算的彈性和可擴(kuò)展性,為用戶提供高效、靈活的數(shù)據(jù)庫(kù)服務(wù)。云數(shù)據(jù)庫(kù)主要分為兩大類(lèi):關(guān)系型數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 01-07 10:22 ?499次閱讀

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫(kù)故障: Mysql數(shù)據(jù)庫(kù)表記錄丟失。 Mysql數(shù)據(jù)庫(kù)故障表現(xiàn): 1、Mysql數(shù)據(jù)庫(kù)表中無(wú)任何數(shù)據(jù)或只有部分
    的頭像 發(fā)表于 12-16 11:05 ?602次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—Mysql<b class='flag-5'>數(shù)據(jù)庫(kù)</b>表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫(kù)ibdata1文損壞的數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫(kù)故障: mysql數(shù)據(jù)庫(kù)文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫(kù)無(wú)法進(jìn)行查詢等操作;2、使用mysqlcheck和myisamchk無(wú)法修復(fù)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 12-09 11:05 ?624次閱讀

    DDS通信中間件——DCPS規(guī)范(下)

    DDS通信中間件——DCPS規(guī)范(下)本期還是DCPS規(guī)范,填上期沒(méi)有聊完的QoS的坑。本系列文章將包括以下內(nèi)容陸續(xù)更新:1.DDS規(guī)范概述2.DCPS規(guī)范解讀3.DDS-XTypes與IDL解讀
    的頭像 發(fā)表于 11-27 11:47 ?1320次閱讀
    DDS通信<b class='flag-5'>中間件</b>——DCPS規(guī)范(下)

    中間件全球數(shù)據(jù)實(shí)時(shí)同步利器,華為云 EventGrid 事件流重磅發(fā)布

    【摘要】 華為云 EventGrid 事件流(簡(jiǎn)稱(chēng) EG)作為易用、穩(wěn)定、高效的數(shù)據(jù)同步管道連接不同的系統(tǒng)與服務(wù),支持中間件數(shù)據(jù)在線實(shí)時(shí)同步。事件流圍繞云中間件,降低了中間件之間
    的頭像 發(fā)表于 10-31 18:39 ?556次閱讀
    <b class='flag-5'>中間件</b>全球<b class='flag-5'>數(shù)據(jù)</b>實(shí)時(shí)同步利器,華為云 EventGrid 事件流重磅發(fā)布

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

    一個(gè)運(yùn)行在存儲(chǔ)上的SQLServer數(shù)據(jù)庫(kù)1000多個(gè)文件,大小幾十TB。數(shù)據(jù)庫(kù)每10天生成一個(gè)NDF文件,每個(gè)NDF幾百GB大小。數(shù)據(jù)庫(kù)包含兩個(gè)LDF文件。 存儲(chǔ)損壞,
    的頭像 發(fā)表于 10-31 13:21 ?691次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—通過(guò)拼接<b class='flag-5'>數(shù)據(jù)庫(kù)</b>碎片恢復(fù)SQLserver<b class='flag-5'>數(shù)據(jù)庫(kù)</b>

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)故障: SQL Server附加數(shù)據(jù)庫(kù)出現(xiàn)錯(cuò)誤823,附加數(shù)據(jù)庫(kù)失敗。數(shù)據(jù)庫(kù)沒(méi)有備份,無(wú)法通過(guò)備份恢復(fù)數(shù)據(jù)庫(kù)
    的頭像 發(fā)表于 09-20 11:46 ?699次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SQL Server<b class='flag-5'>數(shù)據(jù)庫(kù)</b>出現(xiàn)823錯(cuò)誤的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    軟件系統(tǒng)數(shù)據(jù)庫(kù)的分庫(kù)分表設(shè)計(jì)

    軟件系統(tǒng)數(shù)據(jù)庫(kù)的分庫(kù)分表設(shè)計(jì) 系統(tǒng)讀寫(xiě)分離、分庫(kù)分表技術(shù)實(shí)現(xiàn)采用MyCat中間件,MyCat 是一款開(kāi)源(遵循 Apache License 2.0 協(xié)議)的大數(shù)據(jù)庫(kù)集群中間件,用于搭
    的頭像 發(fā)表于 08-22 11:39 ?584次閱讀
    軟件系統(tǒng)<b class='flag-5'>數(shù)據(jù)庫(kù)</b>的分庫(kù)分表設(shè)計(jì)

    數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SqlServer數(shù)據(jù)庫(kù)底層File Record被截?cái)酁?的數(shù)據(jù)恢復(fù)案例

    SQL Server數(shù)據(jù)庫(kù)數(shù)據(jù)無(wú)法被讀取。 經(jīng)過(guò)數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)工程師的初步檢測(cè),發(fā)現(xiàn)SQL Server數(shù)據(jù)庫(kù)文件無(wú)法被讀取的原因是底層
    的頭像 發(fā)表于 07-26 11:27 ?739次閱讀
    <b class='flag-5'>數(shù)據(jù)庫(kù)</b><b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—SqlServer<b class='flag-5'>數(shù)據(jù)庫(kù)</b>底層File Record被截?cái)酁?的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)案例

    恒訊科技分析:sql數(shù)據(jù)庫(kù)怎么

    SQL數(shù)據(jù)庫(kù)的使用通常包括以下幾個(gè)基本步驟: 1、選擇數(shù)據(jù)庫(kù)系統(tǒng): 選擇適合您需求的SQL數(shù)據(jù)庫(kù)系統(tǒng),如MySQL、PostgreSQL、Microsoft SQL Server、SQLite等
    的頭像 發(fā)表于 07-15 14:40 ?635次閱讀
    主站蜘蛛池模板: 阳新县| 和静县| 衢州市| 泉州市| 江安县| 武山县| 秭归县| 兴仁县| 得荣县| 德清县| 特克斯县| 秀山| 安图县| 扶风县| 定日县| 邹城市| 安国市| 临城县| 新巴尔虎左旗| 莫力| 龙胜| 浦县| 荣昌县| 集安市| 泰安市| 神木县| 长武县| 武汉市| 东辽县| 永仁县| 万宁市| 聊城市| 库尔勒市| 天祝| 攀枝花市| 同江市| 铁岭市| 台北县| 新化县| 闽侯县| 融水|