digitalutsc / arks-service

This standalone application provides a user interface to mint, (bulk) bind ARK Identifiers, and resolver for Ark URLs.
BSD 2-Clause "Simplified" License
8 stars 3 forks source link

Develop MySQL query to Improve performance for reporting #33

Open kylehuynh205 opened 4 months ago

kylehuynh205 commented 4 months ago

About

How to reproduce

 SELECT arks.* 
      FROM `dsu_ark`
      AS arks 
      JOIN ( 
        SELECT * FROM (
          SELECT DISTINCT REGEXP_SUBSTR(_key, '^([^\\s]+)') AS id
              FROM `dsu_ark`
          WHERE _key LIKE '61220/utsc%' AND _key NOT REGEXP '(\\s:\/c|\\sREDIRECT|\\sPID|\\sLOCAL_ID|\\sCOLLECTION)$' 
          INTERSECT
          SELECT DISTINCT REGEXP_SUBSTR(_key, '^([^\\s]+)') AS id
          FROM `dsu_ark`
          WHERE _key LIKE '61220/utsc%' AND _key NOT REGEXP '\\s:\/c' AND (_key LIKE '%%' OR _value LIKE '%%')
        ) AS target
        ORDER BY id ASC 
        LIMIT 10
        OFFSET 0
      ) AS subquery 
      ON arks._key LIKE CONCAT(subquery.id, '%') 
      AND arks._key NOT LIKE '%:\/c' 
      ORDER BY arks._key ASC;

Goals

Stretch Goals

Related tickets