PHPMem v2.0.1

Version
1.6.45
Uptime
15 days 10 hours 43 minutes 8 seconds

Memory

Total
512MB
Used
23,11MB (4.51%)
Free
488,89MB

Keys

Current
26 855
Total (since start)
33 978
Evictions
0
Reclaimed
174
Expired Unfetched
0
Evicted Unfetched
0

Connections

Current
12 / 1 024 max
Total
171 927
Rejected
0
llm:d6de56fab29273245bed30aa81fbaab746952c72926fa06387d13d9f071d73a3
TTL 6 days 19 hours 37 minutes 7 seconds Size 3,44KB Export
Edit
Column roles split into four groups. The profiler's labels are sometimes wrong, so I note where I've overridden them. The five tables share no detected join key, so each is classified on its own. ## 1. Identifiers and keys No single column is unique. Identity comes from composite keys. - **`raw_kaggle`, `return_kaggle`, `serve_kaggle`:** one row per player per match, keyed on `Name` + `Date` + `Tournament` + `Rd`. The serve table spells the tournament column `Tournment`. - **`players_tournament_man_`:** keyed on `name` + `year` + `tournament`. - **`players_man_`:** keyed on `name`. - **Ingestion metadata in `raw_kaggle`:** `_ingestion_timestamp`, `_batch_id`, `_source_file` and `_source_system` each have one distinct value. They are lineage fields with no analytical use. I only inspected `raw_kaggle`, so I can't say whether the other tables carry them. - **`against` (opponent text):** it has about 252,129 distinct values in `raw_kaggle`, so it behaves like a free-text label rather than a dimension. In `return_kaggle` it is tagged categorical with about 1 distinct value, so the two tables differ. ## 2. Categorical dimensions - **Low cardinality:** `Surface` (about 4 values) and `Rd`, the round (about 14 values). Both appear in all three match tables. `players_tournament_man_.rounds` is also a round label, but has about 131 distinct values. - **High cardinality:** `Tournament` / `Tournment` (about 3,963 distinct values, because editions and qualifiers are separate strings) and `players_tournament_man_.tournament` (about 362). - **Free text:** `Score` has about 10,386 distinct values, including `Walkover` and ` ` artifacts. - **Break-point bucket labels:** `return_kaggle.BPCnv` (about 223 distinct) and `serve_kaggle.Bpsvd` (about 236). They look like "converted/opportunities" strings, which I inferred from the names and did not check in the values. ## 3. Numeric metrics - **Stored as numbers (`DOUBLE`):** - In `raw_kaggle`: `Rk` and `vRk` (player and opponent ranking), `TP` (total points), `SP` (service points), `1SP`, `2SP`, `Aces`, `DFs` and `vA` (opponent aces). - In `return_kaggle` and `serve_kaggle`: `Rk` and `vRk`. - **Stored as integers (`BIGINT`):** `players_man_.number_of_matches`. - **Numeric but stored as text (`VARCHAR`):** the profiler tags most of these as "classifier", which is misleading. - Return stats: `TPW`, `RPW`, `vA%`, `v1st%`, `v2nd%` and `DR`. - Serve stats: `A%`, `1stIn`, `1st%`, `2nd%`, `Df%` and `Dr`. - These are percentages or ratios and need to be cast before use. I inferred this from the column names and did not inspect the values. - **Missing data:** in `raw_kaggle`, `TP`, `SP`, `Aces`, `DFs`, `1SP`, `2SP` and `vA` are each null in 86,793 of 237,205 rows. `Rk` is null in 4,388 rows and `vRk` in 10,390. ## 4. Dates and times - **`Date` and `Time` (all three match tables):** both are `VARCHAR`, not real date types. - `Date` values look like `1-Apr-2013`, and some use a non-standard hyphen, as in `9‑Sep‑2024`. They need cleaning before parsing. - `raw_kaggle` and `return_kaggle` run from April 2013 to September 2024. `serve_kaggle` starts in April 2006. - `Time` has about 347 distinct values. - **`players_tournament_man_.year`:** a `BIGINT` ranging from 2002 to 2024. - **`players_man_.playing_years`:** a `VARCHAR` holding a list-like string of years, such as `[2002, 2005, …, 2024]`.