The MH_Chromo table stores the individual shared DNA segments between you and a MyHeritage match. Each row is one segment — its chromosome, genetic length, physical boundaries, and SNP count.
| Column | Type | Description |
|---|---|---|
| Id | int (PK) | Auto-incrementing primary key |
| guid | string | The full match GUID this segment belongs to (the same value as MH_Match.guid) |
| guid1 | string | The first person in the segment — your kit’s ID (testid), parsed from the match GUID |
| guid2 | string | The second person in the segment — the matched person’s ID (matchid), parsed from the match GUID |
| chromosome | int | Chromosome number the segment is on |
| cm | decimal | Length of the shared segment in centimorgans |
| start | int | Start physical position of the segment (base-pair coordinate) |
| end | int | End physical position of the segment (base-pair coordinate) |
| snps | int | Number of SNPs spanned by the segment |
| startrs | string | RSID (reference SNP identifier) at the segment’s start boundary |
| endrs | string | RSID at the segment’s end boundary |
| GF_Sync | string | GedcomFriends sync timestamp; set when the row has been synced. |
guid1 and guid2 are the two people who share this segment — guid1 is your kit (testid) and guid2 is the match (matchid). The start/end columns are physical base-pair positions on the chromosome, while startrs/endrs are the named RSID markers at those same two boundaries.Rows are written by AddMH_Chromo during the chromosome gather stage. For each segment returned for a match, the code stores the chromosome, cM, positions, SNP count, and boundary RSIDs, and derives guid1/guid2 by splitting the match GUID. A unique index on (guid, chromosome, start) prevents duplicate segments, and guid1 is separately indexed for segment-map lookups. When at least one segment is stored, the match’s chromoRunDate in MH_Match is stamped.
guid matches MH_Match.guid; guid1/guid2 match its testid/matchid.