{"id":15468300,"url":"https://github.com/winebarrel/qlap","last_synced_at":"2026-03-02T06:32:46.591Z","repository":{"id":44429097,"uuid":"328517462","full_name":"winebarrel/qlap","owner":"winebarrel","description":"qlap is a MySQL load testing tool like mysqlslap.","archived":false,"fork":false,"pushed_at":"2025-04-08T02:40:26.000Z","size":60,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-14T23:14:26.074Z","etag":null,"topics":["database","golang","load-testing","mysql"],"latest_commit_sha":null,"homepage":"","language":"Go","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/winebarrel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2021-01-11T01:28:25.000Z","updated_at":"2025-04-08T02:40:29.000Z","dependencies_parsed_at":"2025-06-26T02:04:22.437Z","dependency_job_id":"e240cc92-9de9-41d4-909a-fe21d84f24a7","html_url":"https://github.com/winebarrel/qlap","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/winebarrel/qlap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winebarrel%2Fqlap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winebarrel%2Fqlap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winebarrel%2Fqlap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winebarrel%2Fqlap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winebarrel","download_url":"https://codeload.github.com/winebarrel/qlap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winebarrel%2Fqlap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29994138,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-02T01:47:34.672Z","status":"online","status_checked_at":"2026-03-02T02:00:07.342Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["database","golang","load-testing","mysql"],"created_at":"2024-10-02T01:40:38.932Z","updated_at":"2026-03-02T06:32:46.571Z","avatar_url":"https://github.com/winebarrel.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# qlap\n\nqlap is a MySQL load testing tool like [mysqlslap](https://dev.mysql.com/doc/refman/8.0/en/mysqlslap.html).\n\n## Usage\n\n```\nqlap - MySQL load testing tool like mysqlslap.\n\n  Flags:\n       --version                               Displays the program version string.\n    -h --help                                  Displays help with available flag, subcommand, and positional value parameters.\n    -d --dsn                                   Data Source Name, see https://github.com/go-sql-driver/mysql#examples.\n    -n --nagents                               Number of agents. (default: 1)\n    -t --time                                  Test run time (sec). Zero is infinity. (default: 60)\n       --number-queries                        Number of queries to execute per agent. Zero is infinity. (default: 0)\n    -r --rate                                  Rate limit for each agent (qps). Zero is unlimited. (default: 0)\n    -a --auto-generate-sql                     Automatically generate SQL to execute.\n       --auto-generate-sql-guid-primary        Use GUID as the primary key of the table to be created.\n    -q --query                                 SQL to execute. (file or string)\n       --auto-generate-sql-write-number        Number of rows to be pre-populated for each agent. (default: 100)\n    -l --auto-generate-sql-load-type           Test load type: 'mixed', 'update', 'write', 'key', or 'read'. (default: mixed)\n       --auto-generate-sql-secondary-indexes   Number of secondary indexes in the table to be created. (default: 0)\n       --commit-rate                           Commit every X queries. (default: 0)\n       --mixed-sel-ins-ratio                   Mixed load type 'SELECT:INSERT' ratio. (default: 1:1)\n    -e --engine                                Engine of the table to be created.\n    -x --number-char-cols                      Number of VARCHAR columns in the table to be created. (default: 1)\n       --char-cols-index                       Create indexes on VARCHAR columns in the table to be created.\n    -y --number-int-cols                       Number of INT columns in the table to be created. (default: 1)\n       --int-cols-index                        Create indexes on INT columns in the table to be created.\n       --pre-query                             Queries to be pre-executed for each agent.\n       --create                                SQL for creating custom tables. (file or string)\n       --drop-db                               Forcibly delete the existing DB.\n       --no-drop                               Do not drop database after testing.\n       --hinterval                             Histogram interval, e.g. '100ms'. (default: 0)\n    -F --delimiter                             SQL statements delimiter. (default: ;)\n       --only-print                            Just print SQL without connecting to DB.\n       --no-progress                           Do not show progress.\n```\n\n```\n$ qlap -d root@/ -n 3 -r 100 -t 10 -a -l mixed -x 3 -y 3\n00:10 | 3 agents / run 2727 queries (303 qps)\n\n{\n  \"DSN\": \"root@/\",\n  \"StartedAt\": \"2021-04-05T20:47:48.122543+09:00\",\n  \"FinishedAt\": \"2021-04-05T20:47:58.140224+09:00\",\n  \"ElapsedTime\": 10,\n  \"NAgents\": 3,\n  \"Rate\": 100,\n  \"AutoGenerateSql\": true,\n  \"NumberPrePopulatedData\": 100,\n  \"NumberQueriesToExecute\": 0,\n  \"DropExistingDatabase\": false,\n  \"UseExistingDatabase\": false,\n  \"NoDropDatabase\": false,\n  \"Engine\": \"\",\n  \"LoadType\": \"mixed\",\n  \"GuidPrimary\": false,\n  \"NumberSecondaryIndexes\": 0,\n  \"CommitRate\": 0,\n  \"MixedSelRatio\": 1,\n  \"MixedInsRatio\": 1,\n  \"NumberIntCols\": 3,\n  \"IntColsIndex\": false,\n  \"NumberCharCols\": 3,\n  \"CharColsIndex\": false,\n  \"PreQueries\": null,\n  \"Token\": \"bf9716b4-c9c8-4539-9295-701cc46daa21\",\n  \"GOMAXPROCS\": 16,\n  \"QueryCount\": 2930,\n  \"AvgQPS\": 292.4863396144265,\n  \"MaxQPS\": 305,\n  \"MinQPS\": 202,\n  \"MedianQPS\": 303,\n  \"ExpectedQPS\": 300,\n  \"Response\": {\n    \"Time\": {\n      \"Cumulative\": \"1.70378355s\",\n      \"HMean\": \"499.554µs\",\n      \"Avg\": \"581.496µs\",\n      \"P50\": \"535.414µs\",\n      \"P75\": \"703.491µs\",\n      \"P95\": \"951.235µs\",\n      \"P99\": \"1.224525ms\",\n      \"P999\": \"3.198177ms\",\n      \"Long5p\": \"1.242647ms\",\n      \"Short5p\": \"249.39µs\",\n      \"Max\": \"7.235566ms\",\n      \"Min\": \"145.575µs\",\n      \"Range\": \"7.089991ms\",\n      \"StdDev\": \"274.566µs\"\n    },\n    \"Rate\": {\n      \"Second\": 1719.7020126177413\n    },\n    \"Samples\": 2930,\n    \"Count\": 2930,\n    \"Histogram\": [\n      {\n        \"145µs - 854µs\": 2610\n      },\n      {\n        \"854µs - 1.563ms\": 312\n      },\n      {\n        \"1.563ms - 2.272ms\": 1\n      },\n      {\n        \"2.272ms - 2.981ms\": 1\n      },\n      {\n        \"2.981ms - 3.69ms\": 5\n      },\n      {\n        \"3.69ms - 4.399ms\": 1\n      },\n      {\n        \"4.399ms - 5.108ms\": 0\n      },\n      {\n        \"5.108ms - 5.817ms\": 0\n      },\n      {\n        \"5.817ms - 6.526ms\": 0\n      }\n    ]\n  }\n}\n```\n\n## Use Custom Query\n\n```\nqlap -d root@/ \\\n  --create 'create table test (id int); insert into test values (1)' \\\n  -q 'select id from test; select count(id) from test'\n```\n\n## Related Links\n\n* PostgreSQL load testing tool like mysqlslap\n    * https://github.com/winebarrel/pgslap\n* DB load testing tool\n    * https://github.com/winebarrel/qube\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinebarrel%2Fqlap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinebarrel%2Fqlap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinebarrel%2Fqlap/lists"}