MySQL diz nos documentos para ST_Distance_Sphere
Os cálculos usam uma terra esférica e um raio configurável. O argumento do raio opcional deve ser dado em metros. Se omitido, o raio padrão é 6.370.986 metros. Se o argumento do raio estiver presente, mas não positivo,
ER_WRONG_ARGUMENTS
ocorrerá um erro.
O PostGIS diz nos documentos de ST_Distance_Sphere
(embora os documentos não sejam mais precisos )
Usa uma terra esférica e raio de 6370986 metros.
De onde eles tiraram os 6.370.986 metros padrão? WGS84 diz que o raio do eixo principal é 6.378.137,0 m. O PostGIS que agora usa um raio médio usa essencialmente 6371008.
Olhando o código
#define WGS84_MAJOR_AXIS 6378137.0
#define WGS84_INVERSE_FLATTENING 298.257223563
#define WGS84_MINOR_AXIS (WGS84_MAJOR_AXIS - WGS84_MAJOR_AXIS / WGS84_INVERSE_FLATTENING)
#define WGS84_RADIUS ((2.0 * WGS84_MAJOR_AXIS + WGS84_MINOR_AXIS ) / 3.0)
que significa
-- SELECT 6378137.0 - 6378137.0 / 298.257223563;
WGS84_MINOR_AXIS = 6356752.314245179498
-- SELECT ( 2.0 * 6378137.0 + ( 6378137.0 - 6378137.0 / 298.257223563) ) / 3.0;
WGS84_RADIUS = 6371008.771415059833
As versões mais recentes são muito menos eficientes, mais complexas e usam o Pro4j, mas parecem fazer a mesma coisa.
Ainda de onde vem o 6370986?
(2*minorAxis+majorAxis)/3
... embora esse valor para WGS84 ainda é a poucos metros maior (6,371,008.771)