Uploaded image for project: 'Sentry (Retired)'
  1. Sentry (Retired)
  2. SENTRY-2369

Remove the index for `USER_ID` and `DB_PRIVILEGE_ID` in `SENTRY_USER_DB_PRIVILEGE_MAP`

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Not A Problem
    • None
    • 2.1.0
    • None
    • None

    Description

      Sergio pointed out that we should not create index for `USER_ID` and `DB_PRIVILEGE_ID` in `SENTRY_USER_DB_PRIVILEGE_MAP` explicitly because they are used as primary key. Database will automatically create index for them. Adding index explicitly for them only increase overhead, but does not add benefit.

      Need to verify that the above statement applies all supported DB

      -- Table SENTRY_USER_DB_PRIVILEGE_MAP for join relationship
      CREATE TABLE `SENTRY_USER_DB_PRIVILEGE_MAP` (
        `USER_ID` BIGINT NOT NULL,
        `DB_PRIVILEGE_ID` BIGINT NOT NULL,
        `GRANTOR_PRINCIPAL` VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      
      ALTER TABLE `SENTRY_USER_DB_PRIVILEGE_MAP`
        ADD CONSTRAINT `SENTRY_USR_DB_PRV_MAP_PK` PRIMARY KEY (`USER_ID`,`DB_PRIVILEGE_ID`);
      
      ALTER TABLE `SENTRY_USER_DB_PRIVILEGE_MAP`
        ADD CONSTRAINT `SEN_USR_DB_PRV_MAP_SN_USR_FK`
        FOREIGN KEY (`USER_ID`) REFERENCES `SENTRY_USER`(`USER_ID`);
      
      ALTER TABLE `SENTRY_USER_DB_PRIVILEGE_MAP`
        ADD CONSTRAINT `SEN_USR_DB_PRV_MAP_DB_PRV_FK`
        FOREIGN KEY (`DB_PRIVILEGE_ID`) REFERENCES `SENTRY_DB_PRIVILEGE`(`DB_PRIVILEGE_ID`);
      
      CREATE INDEX `SEN_USR_DB_PRV_MAP_USR_FK_IDX` ON `SENTRY_USER_DB_PRIVILEGE_MAP` (`USER_ID`);
      
      CREATE INDEX `SEN_USR_DB_PRV_MAP_PRV_FK_IDX` ON `SENTRY_USER_DB_PRIVILEGE_MAP` (`DB_PRIVILEGE_ID`);
      

      Attachments

        Activity

          People

            linaataustin Na Li
            linaataustin Na Li
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: