This is an automated email from the ASF dual-hosted git repository.

panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 1945d85e786 Refactor RuleChangedSubscriber (#26747)
1945d85e786 is described below

commit 1945d85e786d918de052223a2839cb218bd491e7
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Jul 3 20:29:25 2023 +0800

    Refactor RuleChangedSubscriber (#26747)
---
 .../subscriber/BroadcastTableSubscriber.java       |  14 +-
 .../encrypt/subscriber/EncryptTableSubscriber.java |  14 +-
 .../encrypt/subscriber/EncryptorSubscriber.java    |  14 +-
 .../CompatibleEncryptTableSubscriber.java          |  14 +-
 .../compatible/CompatibleEncryptorSubscriber.java  |  14 +-
 .../mask/subscriber/MaskAlgorithmSubscriber.java   |  14 +-
 .../mask/subscriber/MaskTableSubscriber.java       |  14 +-
 .../ReadwriteSplittingDataSourceSubscriber.java    |  14 +-
 .../ReadwriteSplittingLoadBalanceSubscriber.java   |  14 +-
 .../DefaultShadowAlgorithmNameSubscriber.java      |  14 +-
 .../subscriber/ShadowAlgorithmSubscriber.java      |  14 +-
 .../subscriber/ShadowDataSourceSubscriber.java     |  14 +-
 .../shadow/subscriber/ShadowTableSubscriber.java   |  14 +-
 ...DefaultDatabaseShardingStrategySubscriber.java} |  36 ++--
 ...a => DefaultKeyGenerateStrategySubscriber.java} |  37 ++--
 ... DefaultShardingAuditorStrategySubscriber.java} |  37 ++--
 ...r.java => DefaultShardingColumnSubscriber.java} |  35 +---
 ...=> DefaultTableShardingStrategySubscriber.java} |  32 +--
 ...Subscriber.java => KeyGeneratorSubscriber.java} |  36 ++--
 .../subscriber/ShardingAlgorithmSubscriber.java    |  86 +-------
 ...scriber.java => ShardingAuditorSubscriber.java} |  36 ++--
 ...riber.java => ShardingAutoTableSubscriber.java} |  34 +--
 .../subscriber/ShardingCacheSubscriber.java        |  14 +-
 .../ShardingDefaultStrategySubscriber.java         | 233 ---------------------
 ....java => ShardingTableReferenceSubscriber.java} |  37 ++--
 .../subscriber/ShardingTableSubscriber.java        |  96 +--------
 ...dingsphere.mode.subsciber.RuleChangedSubscriber |  10 +-
 .../single/subscriber/SingleTableSubscriber.java   |  14 +-
 .../mode/subsciber/RuleChangedSubscriber.java      |  21 +-
 .../visitor/statement/MySQLStatementVisitor.java   |   2 +-
 30 files changed, 210 insertions(+), 768 deletions(-)

diff --git 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
index 90d8da5488e..a821e06da7d 100644
--- 
a/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
+++ 
b/features/broadcast/core/src/main/java/org/apache/shardingsphere/broadcast/subscriber/BroadcastTableSubscriber.java
@@ -37,16 +37,12 @@ import java.util.Optional;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class BroadcastTableSubscriber implements RuleChangedSubscriber {
+public final class BroadcastTableSubscriber implements 
RuleChangedSubscriber<AlterBroadcastTableEvent, DropBroadcastTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter broadcast table.
-     *
-     * @param event alter broadcast table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterBroadcastTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -66,12 +62,8 @@ public final class BroadcastTableSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with delete broadcast table.
-     *
-     * @param event delete broadcast table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropBroadcastTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
index 654e075127c..22c7481e58e 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptTableSubscriber.java
@@ -40,16 +40,12 @@ import java.util.LinkedList;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class EncryptTableSubscriber implements RuleChangedSubscriber {
+public final class EncryptTableSubscriber implements 
RuleChangedSubscriber<AlterEncryptTableEvent, DropEncryptTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter encrypt table.
-     *
-     * @param event alter encrypt table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterEncryptTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -61,12 +57,8 @@ public final class EncryptTableSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), changedConfig));
     }
     
-    /**
-     * Renew with drop encrypt table.
-     *
-     * @param event drop encrypt table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropEncryptTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorSubscriber.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorSubscriber.java
index 1b17a07bb76..ce50d5d5ebe 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorSubscriber.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/EncryptorSubscriber.java
@@ -40,16 +40,12 @@ import java.util.LinkedList;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class EncryptorSubscriber implements RuleChangedSubscriber {
+public final class EncryptorSubscriber implements 
RuleChangedSubscriber<AlterEncryptorEvent, DropEncryptorEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter encryptor.
-     *
-     * @param event alter encryptor event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterEncryptorEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -64,12 +60,8 @@ public final class EncryptorSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop encryptor.
-     *
-     * @param event drop encryptor event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropEncryptorEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableSubscriber.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableSubscriber.java
index d6648d47715..6c370a04a42 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableSubscriber.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptTableSubscriber.java
@@ -42,16 +42,12 @@ import java.util.LinkedList;
 @Deprecated
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class CompatibleEncryptTableSubscriber implements 
RuleChangedSubscriber {
+public final class CompatibleEncryptTableSubscriber implements 
RuleChangedSubscriber<AlterCompatibleEncryptTableEvent, 
DropCompatibleEncryptTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter encrypt table.
-     *
-     * @param event alter encrypt table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterCompatibleEncryptTableEvent 
event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -68,12 +64,8 @@ public final class CompatibleEncryptTableSubscriber 
implements RuleChangedSubscr
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop encrypt table.
-     *
-     * @param event drop encrypt table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropCompatibleEncryptTableEvent 
event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorSubscriber.java
 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorSubscriber.java
index 79e110ece75..9c39e1c579f 100644
--- 
a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorSubscriber.java
+++ 
b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/subscriber/compatible/CompatibleEncryptorSubscriber.java
@@ -42,16 +42,12 @@ import java.util.LinkedList;
 @Deprecated
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class CompatibleEncryptorSubscriber implements 
RuleChangedSubscriber {
+public final class CompatibleEncryptorSubscriber implements 
RuleChangedSubscriber<AlterCompatibleEncryptorEvent, 
DropCompatibleEncryptorEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter encryptor.
-     *
-     * @param event alter encryptor event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterCompatibleEncryptorEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -66,12 +62,8 @@ public final class CompatibleEncryptorSubscriber implements 
RuleChangedSubscribe
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop encryptor.
-     *
-     * @param event drop encryptor event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropCompatibleEncryptorEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmSubscriber.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmSubscriber.java
index e9fd0b68465..6892a1e346c 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmSubscriber.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskAlgorithmSubscriber.java
@@ -40,16 +40,12 @@ import java.util.LinkedList;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class MaskAlgorithmSubscriber implements RuleChangedSubscriber {
+public final class MaskAlgorithmSubscriber implements 
RuleChangedSubscriber<AlterMaskAlgorithmEvent, DropMaskAlgorithmEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter mask algorithm.
-     *
-     * @param event alter mask algorithm event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterMaskAlgorithmEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -63,12 +59,8 @@ public final class MaskAlgorithmSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop mask algorithm.
-     *
-     * @param event drop mask algorithm event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropMaskAlgorithmEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
index 1c778696ff2..f6c9bf5fdef 100644
--- 
a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
+++ 
b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/subscriber/MaskTableSubscriber.java
@@ -40,16 +40,12 @@ import java.util.LinkedList;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class MaskTableSubscriber implements RuleChangedSubscriber {
+public final class MaskTableSubscriber implements 
RuleChangedSubscriber<AlterMaskTableEvent, DropMaskTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter mask table.
-     *
-     * @param event alter mask table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterMaskTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -61,12 +57,8 @@ public final class MaskTableSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop mask table.
-     *
-     * @param event drop mask table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropMaskTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
index 972f53f5537..b48889b77da 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingDataSourceSubscriber.java
@@ -43,16 +43,12 @@ import java.util.Optional;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ReadwriteSplittingDataSourceSubscriber implements 
RuleChangedSubscriber {
+public final class ReadwriteSplittingDataSourceSubscriber implements 
RuleChangedSubscriber<AlterReadwriteSplittingDataSourceEvent, 
DropReadwriteSplittingDataSourceEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter readwrite-splitting configuration.
-     *
-     * @param event alter readwrite-splitting configuration event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final 
AlterReadwriteSplittingDataSourceEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -64,12 +60,8 @@ public final class ReadwriteSplittingDataSourceSubscriber 
implements RuleChanged
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop readwrite-splitting configuration.
-     *
-     * @param event drop readwrite-splitting configuration event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropReadwriteSplittingDataSourceEvent 
event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
index c501021386c..532fd1e2025 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/subscriber/ReadwriteSplittingLoadBalanceSubscriber.java
@@ -42,16 +42,12 @@ import java.util.Optional;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ReadwriteSplittingLoadBalanceSubscriber implements 
RuleChangedSubscriber {
+public final class ReadwriteSplittingLoadBalanceSubscriber implements 
RuleChangedSubscriber<AlterReadwriteSplittingLoadBalancerEvent, 
DropReadwriteSplittingLoadBalancerEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter load-balancer.
-     *
-     * @param event alter load-balancer event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final 
AlterReadwriteSplittingLoadBalancerEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -62,12 +58,8 @@ public final class ReadwriteSplittingLoadBalanceSubscriber 
implements RuleChange
                 
getConfiguration(contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName()),
 event.getItemName(), toBeChangedConfig)));
     }
     
-    /**
-     * Renew with drop load-balancer.
-     *
-     * @param event drop load-balancer event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final 
DropReadwriteSplittingLoadBalancerEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameSubscriber.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameSubscriber.java
index 4bb4d839b89..cf51c6dba59 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameSubscriber.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/DefaultShadowAlgorithmNameSubscriber.java
@@ -35,16 +35,12 @@ import java.util.Optional;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class DefaultShadowAlgorithmNameSubscriber implements 
RuleChangedSubscriber {
+public final class DefaultShadowAlgorithmNameSubscriber implements 
RuleChangedSubscriber<AlterDefaultShadowAlgorithmEvent, 
DropDefaultShadowAlgorithmEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter default algorithm name.
-     *
-     * @param event alter default algorithm name event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterDefaultShadowAlgorithmEvent 
event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -60,12 +56,8 @@ public final class DefaultShadowAlgorithmNameSubscriber 
implements RuleChangedSu
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with delete default algorithm name.
-     *
-     * @param event delete default algorithm name event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropDefaultShadowAlgorithmEvent 
event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
index 216a6588f17..2f8b3ad73b5 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowAlgorithmSubscriber.java
@@ -39,16 +39,12 @@ import java.util.Optional;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShadowAlgorithmSubscriber implements RuleChangedSubscriber {
+public final class ShadowAlgorithmSubscriber implements 
RuleChangedSubscriber<AlterShadowAlgorithmEvent, DropShadowAlgorithmEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter algorithm.
-     *
-     * @param event alter algorithm event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterShadowAlgorithmEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -66,12 +62,8 @@ public final class ShadowAlgorithmSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with delete algorithm.
-     *
-     * @param event delete algorithm event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropShadowAlgorithmEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
index cdf1dba2d91..cc99727974c 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowDataSourceSubscriber.java
@@ -36,16 +36,12 @@ import 
org.apache.shardingsphere.shadow.yaml.config.datasource.YamlShadowDataSou
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShadowDataSourceSubscriber implements RuleChangedSubscriber 
{
+public final class ShadowDataSourceSubscriber implements 
RuleChangedSubscriber<AlterShadowDataSourceEvent, DropShadowDataSourceEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter shadow data source.
-     *
-     * @param event alter shadow data source event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterShadowDataSourceEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -61,12 +57,8 @@ public final class ShadowDataSourceSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with delete shadow data source.
-     *
-     * @param event delete shadow data source event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropShadowDataSourceEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
index 64016c5aa97..298883af96d 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/subscriber/ShadowTableSubscriber.java
@@ -37,16 +37,12 @@ import 
org.apache.shardingsphere.shadow.yaml.swapper.table.YamlShadowTableConfig
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShadowTableSubscriber implements RuleChangedSubscriber {
+public final class ShadowTableSubscriber implements 
RuleChangedSubscriber<AlterShadowTableEvent, DropShadowTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter shadow table.
-     *
-     * @param event alter shadow table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterShadowTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -60,12 +56,8 @@ public final class ShadowTableSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop shadow table.
-     *
-     * @param event drop shadow table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropShadowTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategySubscriber.java
similarity index 70%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategySubscriber.java
index 9a049fa75b3..782000e2d31 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultDatabaseShardingStrategySubscriber.java
@@ -25,54 +25,46 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.event.strategy.database.AlterDefaultDatabaseShardingStrategyEvent;
+import 
org.apache.shardingsphere.sharding.event.strategy.database.DropDefaultDatabaseShardingStrategyEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
+import 
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Default database sharding strategy subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class DefaultDatabaseShardingStrategySubscriber implements 
RuleChangedSubscriber<AlterDefaultDatabaseShardingStrategyEvent, 
DropDefaultDatabaseShardingStrategyEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final 
AlterDefaultDatabaseShardingStrategyEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
         String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
+        ShardingStrategyConfiguration toBeChangedConfig = new 
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingStrategyConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.setDefaultDatabaseShardingStrategy(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final 
DropDefaultDatabaseShardingStrategyEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.setDefaultDatabaseShardingStrategy(null);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategySubscriber.java
similarity index 70%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategySubscriber.java
index 9a049fa75b3..9e115f21c4d 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultKeyGenerateStrategySubscriber.java
@@ -25,54 +25,47 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.event.strategy.keygenerate.AlterDefaultKeyGenerateStrategyEvent;
+import 
org.apache.shardingsphere.sharding.event.strategy.keygenerate.DropDefaultKeyGenerateStrategyEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
+import 
org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlKeyGenerateStrategyConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Default key generate strategy subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class DefaultKeyGenerateStrategySubscriber implements 
RuleChangedSubscriber<AlterDefaultKeyGenerateStrategyEvent, 
DropDefaultKeyGenerateStrategyEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final AlterDefaultKeyGenerateStrategyEvent 
event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
         String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
+        KeyGenerateStrategyConfiguration toBeChangedConfig = new 
YamlKeyGenerateStrategyConfigurationSwapper().swapToObject(
+                YamlEngine.unmarshal(yamlContent, 
YamlKeyGenerateStrategyConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.setDefaultKeyGenerateStrategy(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final DropDefaultKeyGenerateStrategyEvent 
event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.setDefaultKeyGenerateStrategy(null);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategySubscriber.java
similarity index 70%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategySubscriber.java
index 9a049fa75b3..0f913e94cca 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingAuditorStrategySubscriber.java
@@ -25,54 +25,47 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.event.strategy.audit.AlterDefaultShardingAuditorStrategyEvent;
+import 
org.apache.shardingsphere.sharding.event.strategy.audit.DropDefaultShardingAuditorStrategyEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
+import 
org.apache.shardingsphere.sharding.yaml.config.strategy.audit.YamlShardingAuditStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingAuditStrategyConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Default sharding auditor strategy subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class DefaultShardingAuditorStrategySubscriber implements 
RuleChangedSubscriber<AlterDefaultShardingAuditorStrategyEvent, 
DropDefaultShardingAuditorStrategyEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final 
AlterDefaultShardingAuditorStrategyEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
         String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
+        ShardingAuditStrategyConfiguration toBeChangedConfig = new 
YamlShardingAuditStrategyConfigurationSwapper().swapToObject(
+                YamlEngine.unmarshal(yamlContent, 
YamlShardingAuditStrategyConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.setDefaultAuditStrategy(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final 
DropDefaultShardingAuditorStrategyEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.setDefaultAuditStrategy(null);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnSubscriber.java
similarity index 66%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnSubscriber.java
index 9a049fa75b3..f4df6bbfa7d 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultShardingColumnSubscriber.java
@@ -20,59 +20,46 @@ package org.apache.shardingsphere.sharding.subscriber;
 import com.google.common.eventbus.Subscribe;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChangedEvent;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.event.strategy.shardingcolumn.AlterDefaultShardingColumnEvent;
+import 
org.apache.shardingsphere.sharding.event.strategy.shardingcolumn.DropDefaultShardingColumnEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Default sharding column subscriber subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class DefaultShardingColumnSubscriber implements 
RuleChangedSubscriber<AlterDefaultShardingColumnEvent, 
DropDefaultShardingColumnEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final AlterDefaultShardingColumnEvent 
event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
+        String toBeChangedConfig = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.setDefaultShardingColumn(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final DropDefaultShardingColumnEvent event) 
{
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.setDefaultAuditStrategy(null);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategySubscriber.java
similarity index 67%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategySubscriber.java
index 9a049fa75b3..b2f5bd21476 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/DefaultTableShardingStrategySubscriber.java
@@ -25,54 +25,54 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.event.strategy.table.AlterDefaultTableShardingStrategyEvent;
+import 
org.apache.shardingsphere.sharding.event.strategy.table.DropDefaultTableShardingStrategyEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
+import 
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration;
+import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Default table sharding strategy subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class DefaultTableShardingStrategySubscriber implements 
RuleChangedSubscriber<AlterDefaultTableShardingStrategyEvent, 
DropDefaultTableShardingStrategyEvent> {
     
     private ContextManager contextManager;
     
     /**
-     * Renew with alter sharding cache.
+     * Renew with alter default table sharding strategy.
      *
-     * @param event alter sharding cache event
+     * @param event alter default table sharding strategy event
      */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    public synchronized void renew(final 
AlterDefaultTableShardingStrategyEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
         String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
+        ShardingStrategyConfiguration toBeChangedConfig = new 
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingStrategyConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.setDefaultTableShardingStrategy(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
     /**
-     * Renew with drop sharding cache.
+     * Renew with drop default table sharding strategy.
      *
-     * @param event drop sharding cache event
+     * @param event drop default table sharding strategy event
      */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    public synchronized void renew(final DropDefaultTableShardingStrategyEvent 
event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.setDefaultTableShardingStrategy(null);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorSubscriber.java
similarity index 72%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorSubscriber.java
index 9a049fa75b3..5ff52339975 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/KeyGeneratorSubscriber.java
@@ -21,58 +21,48 @@ import com.google.common.eventbus.Subscribe;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
+import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration;
+import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChangedEvent;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.event.algorithm.keygenerator.AlterKeyGeneratorEvent;
+import 
org.apache.shardingsphere.sharding.event.algorithm.keygenerator.DropKeyGeneratorEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Key generator subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class KeyGeneratorSubscriber implements 
RuleChangedSubscriber<AlterKeyGeneratorEvent, DropKeyGeneratorEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final AlterKeyGeneratorEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
+        config.getKeyGenerators().put(event.getItemName(), new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class)));
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final DropKeyGeneratorEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.getKeyGenerators().remove(event.getItemName());
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmSubscriber.java
index d1fc7d23395..f13698d5685 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAlgorithmSubscriber.java
@@ -27,10 +27,6 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.event.algorithm.auditor.AlterShardingAuditorEvent;
-import 
org.apache.shardingsphere.sharding.event.algorithm.auditor.DropShardingAuditorEvent;
-import 
org.apache.shardingsphere.sharding.event.algorithm.keygenerator.AlterKeyGeneratorEvent;
-import 
org.apache.shardingsphere.sharding.event.algorithm.keygenerator.DropKeyGeneratorEvent;
 import 
org.apache.shardingsphere.sharding.event.algorithm.sharding.AlterShardingAlgorithmEvent;
 import 
org.apache.shardingsphere.sharding.event.algorithm.sharding.DropShardingAlgorithmEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
@@ -40,16 +36,12 @@ import org.apache.shardingsphere.sharding.rule.ShardingRule;
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingAlgorithmSubscriber implements 
RuleChangedSubscriber {
+public final class ShardingAlgorithmSubscriber implements 
RuleChangedSubscriber<AlterShardingAlgorithmEvent, DropShardingAlgorithmEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding algorithm.
-     *
-     * @param event alter sharding algorithm event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterShardingAlgorithmEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -62,12 +54,8 @@ public final class ShardingAlgorithmSubscriber implements 
RuleChangedSubscriber
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with delete sharding algorithm.
-     *
-     * @param event delete sharding algorithm event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropShardingAlgorithmEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
@@ -77,72 +65,4 @@ public final class ShardingAlgorithmSubscriber implements 
RuleChangedSubscriber
         config.getShardingAlgorithms().remove(event.getItemName());
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
-    
-    /**
-     * Renew with alter sharding algorithm.
-     *
-     * @param event alter sharding algorithm event
-     */
-    @Subscribe
-    public synchronized void renew(final AlterKeyGeneratorEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        config.getKeyGenerators().put(event.getItemName(), new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class)));
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with delete key generator.
-     *
-     * @param event delete key generator event
-     */
-    @Subscribe
-    public synchronized void renew(final DropKeyGeneratorEvent event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.getKeyGenerators().remove(event.getItemName());
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with alter sharding algorithm.
-     *
-     * @param event alter sharding algorithm event
-     */
-    @Subscribe
-    public synchronized void renew(final AlterShardingAuditorEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        config.getAuditors().put(event.getItemName(), new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class)));
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with delete key generator.
-     *
-     * @param event delete key generator event
-     */
-    @Subscribe
-    public synchronized void renew(final DropShardingAuditorEvent event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.getAuditors().remove(event.getItemName());
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorSubscriber.java
similarity index 72%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorSubscriber.java
index 9a049fa75b3..e0db654a6f2 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAuditorSubscriber.java
@@ -21,58 +21,48 @@ import com.google.common.eventbus.Subscribe;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
+import 
org.apache.shardingsphere.infra.yaml.config.pojo.algorithm.YamlAlgorithmConfiguration;
+import 
org.apache.shardingsphere.infra.yaml.config.swapper.algorithm.YamlAlgorithmConfigurationSwapper;
 import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChangedEvent;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.event.algorithm.auditor.AlterShardingAuditorEvent;
+import 
org.apache.shardingsphere.sharding.event.algorithm.auditor.DropShardingAuditorEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Sharding auditor subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class ShardingAuditorSubscriber implements 
RuleChangedSubscriber<AlterShardingAuditorEvent, DropShardingAuditorEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final AlterShardingAuditorEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
+        config.getAuditors().put(event.getItemName(), new 
YamlAlgorithmConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlAlgorithmConfiguration.class)));
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final DropShardingAuditorEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.getAuditors().remove(event.getItemName());
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableSubscriber.java
similarity index 67%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableSubscriber.java
index 9a049fa75b3..8ff2228bdd0 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingAutoTableSubscriber.java
@@ -25,54 +25,56 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.event.table.auto.AlterShardingAutoTableEvent;
+import 
org.apache.shardingsphere.sharding.event.table.auto.DropShardingAutoTableEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
+import 
org.apache.shardingsphere.sharding.yaml.config.rule.YamlShardingAutoTableRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingAutoTableRuleConfigurationSwapper;
 
 /**
- * Sharding cache subscriber.
+ * Sharding auto table subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class ShardingAutoTableSubscriber implements 
RuleChangedSubscriber<AlterShardingAutoTableEvent, DropShardingAutoTableEvent> {
     
     private ContextManager contextManager;
     
     /**
-     * Renew with alter sharding cache.
+     * Renew with alter sharding auto table.
      *
-     * @param event alter sharding cache event
+     * @param event alter sharding auto table event
      */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    public synchronized void renew(final AlterShardingAutoTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
         String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
+        ShardingAutoTableRuleConfiguration toBeChangedConfig = new 
YamlShardingAutoTableRuleConfigurationSwapper().swapToObject(
+                YamlEngine.unmarshal(yamlContent, 
YamlShardingAutoTableRuleConfiguration.class));
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.getAutoTables().removeIf(each -> 
each.getLogicTable().equals(event.getItemName()));
+        config.getAutoTables().add(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
     /**
-     * Renew with drop sharding cache.
+     * Renew with delete sharding auto table.
      *
-     * @param event drop sharding cache event
+     * @param event delete sharding auto table event
      */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    public synchronized void renew(final DropShardingAutoTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.getAutoTables().removeIf(each -> 
each.getLogicTable().equals(event.getItemName()));
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
index 9a049fa75b3..3129ca4a2a1 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
@@ -37,16 +37,12 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheCo
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class ShardingCacheSubscriber implements 
RuleChangedSubscriber<AlterShardingCacheEvent, DropShardingCacheEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterShardingCacheEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -60,12 +56,8 @@ public final class ShardingCacheSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropShardingCacheEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
deleted file mode 100644
index a2d040348c5..00000000000
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingDefaultStrategySubscriber.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.sharding.subscriber;
-
-import com.google.common.eventbus.Subscribe;
-import lombok.Setter;
-import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
-import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChangedEvent;
-import org.apache.shardingsphere.mode.manager.ContextManager;
-import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
-import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.strategy.audit.ShardingAuditStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.strategy.sharding.ShardingStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.event.strategy.audit.AlterDefaultShardingAuditorStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.audit.DropDefaultShardingAuditorStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.database.AlterDefaultDatabaseShardingStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.database.DropDefaultDatabaseShardingStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.keygenerate.AlterDefaultKeyGenerateStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.keygenerate.DropDefaultKeyGenerateStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.shardingcolumn.AlterDefaultShardingColumnEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.shardingcolumn.DropDefaultShardingColumnEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.table.AlterDefaultTableShardingStrategyEvent;
-import 
org.apache.shardingsphere.sharding.event.strategy.table.DropDefaultTableShardingStrategyEvent;
-import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.strategy.audit.YamlShardingAuditStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.config.strategy.keygen.YamlKeyGenerateStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.config.strategy.sharding.YamlShardingStrategyConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlKeyGenerateStrategyConfigurationSwapper;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingAuditStrategyConfigurationSwapper;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.strategy.YamlShardingStrategyConfigurationSwapper;
-
-/**
- * Sharding default strategy subscriber.
- */
-@SuppressWarnings("UnstableApiUsage")
-@Setter
-public final class ShardingDefaultStrategySubscriber implements 
RuleChangedSubscriber {
-    
-    private ContextManager contextManager;
-    
-    /**
-     * Renew with alter default database sharding strategy.
-     *
-     * @param event alter default database sharding strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final 
AlterDefaultDatabaseShardingStrategyEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingStrategyConfiguration toBeChangedConfig = new 
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingStrategyConfiguration.class));
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setDefaultDatabaseShardingStrategy(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with drop default database sharding strategy.
-     *
-     * @param event drop default database sharding strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final 
DropDefaultDatabaseShardingStrategyEvent event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setDefaultDatabaseShardingStrategy(null);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with alter default table sharding strategy.
-     *
-     * @param event alter default table sharding strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final 
AlterDefaultTableShardingStrategyEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingStrategyConfiguration toBeChangedConfig = new 
YamlShardingStrategyConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingStrategyConfiguration.class));
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setDefaultTableShardingStrategy(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with drop default table sharding strategy.
-     *
-     * @param event drop default table sharding strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final DropDefaultTableShardingStrategyEvent 
event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setDefaultTableShardingStrategy(null);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with alter default key generate strategy.
-     *
-     * @param event alter default key generate strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final AlterDefaultKeyGenerateStrategyEvent 
event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        KeyGenerateStrategyConfiguration toBeChangedConfig = new 
YamlKeyGenerateStrategyConfigurationSwapper().swapToObject(
-                YamlEngine.unmarshal(yamlContent, 
YamlKeyGenerateStrategyConfiguration.class));
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setDefaultKeyGenerateStrategy(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with drop default key generate strategy.
-     *
-     * @param event drop default key generate strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final DropDefaultKeyGenerateStrategyEvent 
event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setDefaultKeyGenerateStrategy(null);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with alter default sharding auditor strategy.
-     *
-     * @param event alter default sharding auditor strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final 
AlterDefaultShardingAuditorStrategyEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingAuditStrategyConfiguration toBeChangedConfig = new 
YamlShardingAuditStrategyConfigurationSwapper().swapToObject(
-                YamlEngine.unmarshal(yamlContent, 
YamlShardingAuditStrategyConfiguration.class));
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setDefaultAuditStrategy(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with drop default sharding auditor strategy.
-     *
-     * @param event drop default sharding auditor strategy event
-     */
-    @Subscribe
-    public synchronized void renew(final 
DropDefaultShardingAuditorStrategyEvent event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setDefaultAuditStrategy(null);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with alter default sharding column.
-     *
-     * @param event alter default sharding column event
-     */
-    @Subscribe
-    public synchronized void renew(final AlterDefaultShardingColumnEvent 
event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        String toBeChangedConfig = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setDefaultShardingColumn(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with delete default sharding column.
-     *
-     * @param event delete default sharding column event
-     */
-    @Subscribe
-    public synchronized void renew(final DropDefaultShardingColumnEvent event) 
{
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setDefaultAuditStrategy(null);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-}
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceSubscriber.java
similarity index 70%
copy from 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
copy to 
features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceSubscriber.java
index 9a049fa75b3..f82dc76c042 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingCacheSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableReferenceSubscriber.java
@@ -20,59 +20,50 @@ package org.apache.shardingsphere.sharding.subscriber;
 import com.google.common.eventbus.Subscribe;
 import lombok.Setter;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.util.yaml.YamlEngine;
 import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChangedEvent;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.cache.ShardingCacheConfiguration;
-import org.apache.shardingsphere.sharding.event.cache.AlterShardingCacheEvent;
-import org.apache.shardingsphere.sharding.event.cache.DropShardingCacheEvent;
+import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
+import 
org.apache.shardingsphere.sharding.event.table.binding.AlterShardingTableReferenceEvent;
+import 
org.apache.shardingsphere.sharding.event.table.binding.DropShardingTableReferenceEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.cache.YamlShardingCacheConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.cache.YamlShardingCacheConfigurationSwapper;
+import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableReferenceRuleConfigurationConverter;
 
 /**
- * Sharding cache subscriber.
+ * Sharding table reference subscriber.
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingCacheSubscriber implements RuleChangedSubscriber {
+public final class ShardingTableReferenceSubscriber implements 
RuleChangedSubscriber<AlterShardingTableReferenceEvent, 
DropShardingTableReferenceEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding cache.
-     *
-     * @param event alter sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final AlterShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final AlterShardingTableReferenceEvent 
event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
         }
         String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingCacheConfiguration toBeChangedConfig = new 
YamlShardingCacheConfigurationSwapper().swapToObject(YamlEngine.unmarshal(yamlContent,
 YamlShardingCacheConfiguration.class));
+        ShardingTableReferenceRuleConfiguration toBeChangedConfig = 
YamlShardingTableReferenceRuleConfigurationConverter.convertToObject(yamlContent);
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
                 .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.setShardingCache(toBeChangedConfig);
+        config.getBindingTableGroups().removeIf(each -> 
each.getName().equals(event.getItemName()));
+        config.getBindingTableGroups().add(toBeChangedConfig);
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding cache.
-     *
-     * @param event drop sharding cache event
-     */
     @Subscribe
-    public synchronized void renew(final DropShardingCacheEvent event) {
+    @Override
+    public synchronized void renew(final DropShardingTableReferenceEvent 
event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
         }
         ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
         ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.setShardingCache(null);
+        config.getBindingTableGroups().removeIf(each -> 
each.getName().equals(event.getItemName()));
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
 }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableSubscriber.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableSubscriber.java
index 05c0b26f236..6fd60445290 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableSubscriber.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/subscriber/ShardingTableSubscriber.java
@@ -25,20 +25,11 @@ import 
org.apache.shardingsphere.mode.event.config.DatabaseRuleConfigurationChan
 import org.apache.shardingsphere.mode.manager.ContextManager;
 import org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber;
 import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingAutoTableRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableReferenceRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.event.table.auto.AlterShardingAutoTableEvent;
-import 
org.apache.shardingsphere.sharding.event.table.auto.DropShardingAutoTableEvent;
-import 
org.apache.shardingsphere.sharding.event.table.binding.AlterShardingTableReferenceEvent;
-import 
org.apache.shardingsphere.sharding.event.table.binding.DropShardingTableReferenceEvent;
 import 
org.apache.shardingsphere.sharding.event.table.sharding.AlterShardingTableEvent;
 import 
org.apache.shardingsphere.sharding.event.table.sharding.DropShardingTableEvent;
 import org.apache.shardingsphere.sharding.rule.ShardingRule;
-import 
org.apache.shardingsphere.sharding.yaml.config.rule.YamlShardingAutoTableRuleConfiguration;
 import 
org.apache.shardingsphere.sharding.yaml.config.rule.YamlTableRuleConfiguration;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingAutoTableRuleConfigurationSwapper;
-import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableReferenceRuleConfigurationConverter;
 import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableRuleConfigurationSwapper;
 
 /**
@@ -46,16 +37,12 @@ import 
org.apache.shardingsphere.sharding.yaml.swapper.rule.YamlShardingTableRul
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class ShardingTableSubscriber implements RuleChangedSubscriber {
+public final class ShardingTableSubscriber implements 
RuleChangedSubscriber<AlterShardingTableEvent, DropShardingTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter sharding table.
-     *
-     * @param event alter sharding table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterShardingTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -70,12 +57,8 @@ public final class ShardingTableSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
     
-    /**
-     * Renew with drop sharding table.
-     *
-     * @param event drop sharding table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropShardingTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
@@ -85,77 +68,4 @@ public final class ShardingTableSubscriber implements 
RuleChangedSubscriber {
         config.getTables().removeIf(each -> 
each.getLogicTable().equals(event.getItemName()));
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
     }
-    
-    /**
-     * Renew with alter sharding auto table.
-     *
-     * @param event alter sharding auto table event
-     */
-    @Subscribe
-    public synchronized void renew(final AlterShardingAutoTableEvent event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingAutoTableRuleConfiguration toBeChangedConfig = new 
YamlShardingAutoTableRuleConfigurationSwapper().swapToObject(
-                YamlEngine.unmarshal(yamlContent, 
YamlShardingAutoTableRuleConfiguration.class));
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.getAutoTables().removeIf(each -> 
each.getLogicTable().equals(event.getItemName()));
-        config.getAutoTables().add(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with delete sharding auto table.
-     *
-     * @param event delete sharding auto table event
-     */
-    @Subscribe
-    public synchronized void renew(final DropShardingAutoTableEvent event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.getAutoTables().removeIf(each -> 
each.getLogicTable().equals(event.getItemName()));
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with alter sharding table reference.
-     *
-     * @param event alter sharding table reference event
-     */
-    @Subscribe
-    public synchronized void renew(final AlterShardingTableReferenceEvent 
event) {
-        if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
-            return;
-        }
-        String yamlContent = 
contextManager.getInstanceContext().getModeContextManager().getVersionPathByActiveVersionKey(event.getActiveVersionKey(),
 event.getActiveVersion());
-        ShardingTableReferenceRuleConfiguration toBeChangedConfig = 
YamlShardingTableReferenceRuleConfigurationConverter.convertToObject(yamlContent);
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = 
database.getRuleMetaData().findSingleRule(ShardingRule.class)
-                .map(optional -> (ShardingRuleConfiguration) 
optional.getConfiguration()).orElseGet(ShardingRuleConfiguration::new);
-        config.getBindingTableGroups().removeIf(each -> 
each.getName().equals(event.getItemName()));
-        config.getBindingTableGroups().add(toBeChangedConfig);
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
-    
-    /**
-     * Renew with delete sharding table reference.
-     *
-     * @param event delete sharding table reference event
-     */
-    @Subscribe
-    public synchronized void renew(final DropShardingTableReferenceEvent 
event) {
-        if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
-            return;
-        }
-        ShardingSphereDatabase database = 
contextManager.getMetaDataContexts().getMetaData().getDatabases().get(event.getDatabaseName());
-        ShardingRuleConfiguration config = (ShardingRuleConfiguration) 
database.getRuleMetaData().getSingleRule(ShardingRule.class).getConfiguration();
-        config.getBindingTableGroups().removeIf(each -> 
each.getName().equals(event.getItemName()));
-        contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), config));
-    }
 }
diff --git 
a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber
 
b/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber
index a3b19909ddd..c8e1ee02ae5 100644
--- 
a/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber
+++ 
b/features/sharding/core/src/main/resources/META-INF/services/org.apache.shardingsphere.mode.subsciber.RuleChangedSubscriber
@@ -15,7 +15,15 @@
 # limitations under the License.
 #
 
+org.apache.shardingsphere.sharding.subscriber.ShardingAutoTableSubscriber
 org.apache.shardingsphere.sharding.subscriber.ShardingTableSubscriber
-org.apache.shardingsphere.sharding.subscriber.ShardingDefaultStrategySubscriber
+org.apache.shardingsphere.sharding.subscriber.ShardingTableReferenceSubscriber
 org.apache.shardingsphere.sharding.subscriber.ShardingAlgorithmSubscriber
+org.apache.shardingsphere.sharding.subscriber.KeyGeneratorSubscriber
+org.apache.shardingsphere.sharding.subscriber.ShardingAuditorSubscriber
+org.apache.shardingsphere.sharding.subscriber.DefaultDatabaseShardingStrategySubscriber
+org.apache.shardingsphere.sharding.subscriber.DefaultTableShardingStrategySubscriber
+org.apache.shardingsphere.sharding.subscriber.DefaultKeyGenerateStrategySubscriber
+org.apache.shardingsphere.sharding.subscriber.DefaultShardingAuditorStrategySubscriber
+org.apache.shardingsphere.sharding.subscriber.DefaultShardingColumnSubscriber
 org.apache.shardingsphere.sharding.subscriber.ShardingCacheSubscriber
diff --git 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
index e7fd27523d5..3e3a0430b96 100644
--- 
a/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
+++ 
b/kernel/single/core/src/main/java/org/apache/shardingsphere/single/subscriber/SingleTableSubscriber.java
@@ -36,16 +36,12 @@ import 
org.apache.shardingsphere.single.yaml.config.swapper.YamlSingleRuleConfig
  */
 @SuppressWarnings("UnstableApiUsage")
 @Setter
-public final class SingleTableSubscriber implements RuleChangedSubscriber {
+public final class SingleTableSubscriber implements 
RuleChangedSubscriber<AlterSingleTableEvent, DropSingleTableEvent> {
     
     private ContextManager contextManager;
     
-    /**
-     * Renew with alter single table.
-     *
-     * @param event alter single table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final AlterSingleTableEvent event) {
         if 
(!event.getActiveVersion().equals(contextManager.getInstanceContext().getModeContextManager().getActiveVersionByKey(event.getActiveVersionKey())))
 {
             return;
@@ -57,12 +53,8 @@ public final class SingleTableSubscriber implements 
RuleChangedSubscriber {
         contextManager.getInstanceContext().getEventBusContext().post(new 
DatabaseRuleConfigurationChangedEvent(event.getDatabaseName(), changedConfig));
     }
     
-    /**
-     * Renew with drop single table.
-     *
-     * @param event drop single table event
-     */
     @Subscribe
+    @Override
     public synchronized void renew(final DropSingleTableEvent event) {
         if 
(!contextManager.getMetaDataContexts().getMetaData().containsDatabase(event.getDatabaseName()))
 {
             return;
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleChangedSubscriber.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleChangedSubscriber.java
index 60db5c37367..c435fbd8416 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleChangedSubscriber.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/subsciber/RuleChangedSubscriber.java
@@ -17,12 +17,17 @@
 
 package org.apache.shardingsphere.mode.subsciber;
 
+import 
org.apache.shardingsphere.infra.rule.event.rule.alter.AlterRuleItemEvent;
+import org.apache.shardingsphere.infra.rule.event.rule.drop.DropRuleItemEvent;
 import org.apache.shardingsphere.mode.manager.ContextManager;
 
 /**
  * Rule changed subscriber.
+ * 
+ * @param <A> type of alter rule item event
+ * @param <D> type of drop rule item event
  */
-public interface RuleChangedSubscriber {
+public interface RuleChangedSubscriber<A extends AlterRuleItemEvent, D extends 
DropRuleItemEvent> {
     
     /**
      * Set context manager.
@@ -30,4 +35,18 @@ public interface RuleChangedSubscriber {
      * @param contextManager context manager
      */
     void setContextManager(ContextManager contextManager);
+    
+    /**
+     * Renew with alter rule item.
+     *
+     * @param event alter rule item event
+     */
+    void renew(A event);
+    
+    /**
+     * Renew with drop rule item.
+     *
+     * @param event drop rule item event
+     */
+    void renew(D event);
 }
diff --git 
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
 
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
index 4926b71acb4..b0d602ae3c0 100644
--- 
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
+++ 
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/statement/MySQLStatementVisitor.java
@@ -555,7 +555,7 @@ public abstract class MySQLStatementVisitor extends 
MySQLStatementBaseVisitor<AS
         String text = ctx.start.getInputStream().getText(new 
Interval(ctx.start.getStartIndex(), ctx.stop.getStopIndex()));
         return new BinaryOperationExpression(ctx.start.getStartIndex(), 
ctx.stop.getStopIndex(), left, right, operator, text);
     }
-
+    
     private BinaryOperationExpression 
createBinaryOperationExpressionFromRlike(final PredicateContext ctx) {
         ExpressionSegment left = (ExpressionSegment) visit(ctx.bitExpr(0));
         ExpressionSegment right = (ExpressionSegment) visit(ctx.bitExpr(1));

Reply via email to