{"id":20398638,"url":"https://github.com/bsnext/mysql-minifier","last_synced_at":"2026-05-06T04:02:50.572Z","repository":{"id":232755254,"uuid":"730789175","full_name":"bsnext/MySQL-Minifier","owner":"bsnext","description":"MySQL/SQL Queries minifier.","archived":false,"fork":false,"pushed_at":"2024-04-13T00:35:45.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-04-14T13:12:45.182Z","etag":null,"topics":["compress","minifier","mysql","node","optimizer","sql","sqlite","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bsnext.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-12T17:14:26.000Z","updated_at":"2024-04-14T13:12:45.182Z","dependencies_parsed_at":"2024-04-11T09:39:47.678Z","dependency_job_id":"3fd29209-9110-428c-af7a-c652487078dc","html_url":"https://github.com/bsnext/MySQL-Minifier","commit_stats":null,"previous_names":["bsnext/mysql-minifier"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsnext%2FMySQL-Minifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsnext%2FMySQL-Minifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsnext%2FMySQL-Minifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bsnext%2FMySQL-Minifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bsnext","download_url":"https://codeload.github.com/bsnext/MySQL-Minifier/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241945530,"owners_count":20046870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compress","minifier","mysql","node","optimizer","sql","sqlite","typescript"],"created_at":"2024-11-15T04:23:04.193Z","updated_at":"2026-05-06T04:02:45.536Z","avatar_url":"https://github.com/bsnext.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MySQL-Minifier\n\nSmall library for compress queries, for decrease data-size transfered in network.\n\n## Installing:\n```bash\nnpm install @bsnext/mysql-minifier\n```\n\n```ts\nimport MySQLMinifier from \"@bsnext/mysql-minifier\";\nconst minifier = new MySQLMinifier(true);\nconst result = minifier.minify(`HERE A YOUR MYSQL QUERY`);\n```\n\n## Usage:\n```ts\nnew MySQLMinifier(isCaching: boolean = false, cacheLimit: number = 100, cachePurgeTime?: number)\n```\n\n* isCaching - State of LRU cache mode for store parsed keys.\n* cacheLimit - Limit of max LRU cache size.\n* cachePurgeTime - Interval (seconds) for purge cache. Disabled by default.\n\n## Example:\n\u003cb\u003e2884 characters.\u003c/b\u003e\n```sql\nSET @running_total := 0, @previous_salary := 0; -- Initialize variables for running total and previous salary\n\nSELECT \n    E.id, -- Select employee ID\n    E.name, -- Employee name\n    CONCAT(E.first_name, ' ', E.last_name) AS full_name, # Concatenate first and last name for full name\n    D.name AS department, -- Department name\n    P.title AS project, -- Project title\n    T.task_description, # Task description\n    AVG(T.hours) AS average_hours, -- Calculate average hours worked on tasks\n    SUM(T.hours) OVER (PARTITION BY E.id ORDER BY T.date) AS cumulative_hours, # Cumulative hours worked by each employee\n    @running_total := @running_total + E.salary AS running_total_salary, -- Calculate running total of salaries\n    CASE \n        WHEN @previous_salary \u003c E.salary THEN 'Increased'\n        ELSE 'Decreased'\n    END AS salary_trend, -- Trend of salary compared to previous\n    @previous_salary := E.salary, # Update previous salary to current salary\n    (SELECT GROUP_CONCAT(task_name SEPARATOR ', ') FROM tasks WHERE employee_id = E.id) AS all_tasks, -- Concatenate all task names for each employee\n    (SELECT MAX(budget) FROM projects WHERE manager_id = E.id) AS max_project_budget, -- Maximum project budget managed by the employee\n    (SELECT MIN(start_date) FROM projects WHERE department_id = D.id) AS department_earliest_project, # Earliest project start date in the department\n    (SELECT COUNT(*) FROM department_employees WHERE department_id = D.id) AS department_size, -- Size of the department\n    (SELECT AVG(salary) FROM employees WHERE department_id = D.id) AS department_avg_salary, -- Average salary in the department\n    (SELECT SUM(hours) FROM tasks WHERE employee_id = E.id AND date BETWEEN '2023-01-01' AND '2023-06-30') AS total_hours_first_half -- Total hours worked in the first half of 2023\nFROM \n    employees E -- From employees table\nJOIN \n    department_employees DE ON E.id = DE.employee_id -- Join with department_employees\nJOIN \n    departments D ON DE.department_id = D.id -- Join with departments\nLEFT JOIN \n    project_assignments PA ON E.id = PA.employee_id -- Left join with project_assignments\nLEFT JOIN \n    projects P ON PA.project_id = P.id -- Left join with projects\nLEFT JOIN \n    tasks T ON E.id = T.employee_id -- Left join with tasks\nWHERE \n    E.salary \u003e (SELECT AVG(salary) FROM employees WHERE department_id = D.id) -- Filter for salaries above department average\n    AND E.start_date \u003c '2023-01-01' -- Filter for employees who started before 2023\n    AND EXISTS (SELECT 1 FROM projects WHERE manager_id = E.id) -- Filter for employees who manage at least one project\nGROUP BY \n    E.id, E.name, D.name, P.title, T.task_description -- Group by various fields for aggregation\nORDER BY \n    cumulative_hours DESC, max_project_budget DESC, department_avg_salary -- Order by several criteria\nLIMIT 10; # Limit to top 10 results\n```\n\n## Result:\n\u003cb\u003e1550 characters.\u003c/b\u003e\n```sql\nSET@running_total:=0,@previous_salary:=0;SELECT E.id,E.name,CONCAT(E.first_name,' ',E.last_name)AS full_name,D.name AS department,P.title AS project,T.task_description,AVG(T.hours)AS average_hours,SUM(T.hours)OVER(PARTITION BY E.id ORDER BY T.date)AS cumulative_hours,@running_total:=@running_total+E.salary AS running_total_salary,CASE WHEN@previous_salary\u003cE.salary THEN'Increased'ELSE'Decreased'END AS salary_trend,@previous_salary:=E.salary,(SELECT GROUP_CONCAT(task_name SEPARATOR', ')FROM tasks WHERE employee_id=E.id)AS all_tasks,(SELECT MAX(budget)FROM projects WHERE manager_id=E.id)AS max_project_budget,(SELECT MIN(start_date)FROM projects WHERE department_id=D.id)AS department_earliest_project,(SELECT COUNT(*)FROM department_employees WHERE department_id=D.id)AS department_size,(SELECT AVG(salary)FROM employees WHERE department_id=D.id)AS department_avg_salary,(SELECT SUM(hours)FROM tasks WHERE employee_id=E.id AND date BETWEEN'2023-01-01'AND'2023-06-30')AS total_hours_first_half FROM employees E JOIN department_employees DE ON E.id=DE.employee_id JOIN departments D ON DE.department_id=D.id LEFT JOIN project_assignments PA ON E.id=PA.employee_id LEFT JOIN projects P ON PA.project_id=P.id LEFT JOIN tasks T ON E.id=T.employee_id WHERE E.salary\u003e(SELECT AVG(salary)FROM employees WHERE department_id=D.id)AND E.start_date\u003c'2023-01-01'AND EXISTS(SELECT 1 FROM projects WHERE manager_id=E.id)GROUP BY E.id,E.name,D.name,P.title,T.task_description ORDER BY cumulative_hours DESC,max_project_budget DESC,department_avg_salary LIMIT 10;\n```\n\n## Benchmark:\n[Used code for test and get those results.](https://github.com/bsnext/MySQL-Minifier/blob/main/src/benchmark)\n```js\n[No Cache] Minify Very-Expensive x 21,620 ops/sec ±0.50% (95 runs sampled)\n[No Cache] Minify Medium SQL Query x 41,684 ops/sec ±0.73% (94 runs sampled)\n[No Cache] Minify Cheap SQL Query x 91,676 ops/sec ±0.37% (93 runs sampled)\n[Cache] Minify Very-Expensive x 125,527,995 ops/sec ±3.23% (83 runs sampled)\n[Cache] Minify Medium SQL Query x 125,468,551 ops/sec ±3.82% (84 runs sampled)\n[Cache] Minify Cheap SQL Query x 122,797,325 ops/sec ±3.46% (82 runs sampled)\n\n// Node v22.8.0, Win 11, Ryzen 7 3800X 3.89 GHz, 32 GB RAM 3200 MHz\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsnext%2Fmysql-minifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbsnext%2Fmysql-minifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbsnext%2Fmysql-minifier/lists"}