gpt4 book ai didi

php - 具有大数据集的 MySQL 关系数据库?

转载 作者:行者123 更新时间:2023-11-29 23:36:38 25 4
gpt4 key购买 nike

我正在尝试访问共享公共(public)“SpeciesName”字段的两个表中的数据。

表“coords”是一个非常大的数据集,包含超过 5500 个条目,表本身大约有 26 个字段。该表的唯一ID是矩阵编号,其范围从0到5500,每行包含稍微唯一的数据。然而,有多行具有相同的“SpeciesName” - 表中只有 446 个唯一的“SpeciesNames”。

表“common”存储每个“SpeciesNames”的通用名称和图像数据,包含 3 个字段。基本上我想要做的就是使用“SpeciesNames”作为外键在两个表之间建立 MySQL 关系,并在一个查询中访问两个表中的数据。

从哪里开始? Google 搜索产生的结果涉及包含一两个字段的表。但是,当我查询时,我想从 PHP 的两个表中选择所有字段。任何有关此的建议都会很棒。

编辑:我知道目前数据并不大,但它会很大!我应该更清楚这一点。这是“坐标”:

`Authors` varchar(500) DEFAULT NULL,
`Journal` varchar(500) DEFAULT NULL,
`YearPublication` varchar(500) DEFAULT NULL,
`DOIISBN` varchar(500) DEFAULT NULL,
`AdditionalSource` varchar(500) DEFAULT NULL,
`Ecoregion` varchar(500) DEFAULT NULL,
`GrowthType` varchar(500) DEFAULT NULL,
`GrowthFormRaunkiaer` varchar(500) DEFAULT NULL,
`NumberPopulations` varchar(500) DEFAULT NULL,
`AnnualPeriodicity` varchar(500) DEFAULT NULL,
`CriteriaSize` varchar(500) DEFAULT NULL,
`CriteriaOntogeny` varchar(500) DEFAULT NULL,
`CriteriaAge` varchar(500) DEFAULT NULL,
`Kingdom` varchar(500) DEFAULT NULL,
`Phylum` varchar(500) DEFAULT NULL,
`AngioGymno` varchar(500) DEFAULT NULL,
`DicotMonoc` varchar(500) DEFAULT NULL,
`Class` varchar(500) DEFAULT NULL,
`_Order` varchar(500) DEFAULT NULL,
`Family` varchar(500) DEFAULT NULL,
`Genus` varchar(500) DEFAULT NULL,
`SpeciesName` varchar(500) DEFAULT 'NA',
`EnteredBy` varchar(500) DEFAULT NULL,
`EnteredDate` varchar(500) DEFAULT NULL,
`Source` varchar(500) DEFAULT NULL,
`SpeciesAuthor` varchar(500) DEFAULT NULL,
`StudiedSex` varchar(500) DEFAULT NULL,
`MatrixComposite` varchar(500) DEFAULT NULL,
`MatrixTreatment` varchar(500) DEFAULT NULL,
`MatrixCaptivity` varchar(500) DEFAULT NULL,
`MatrixStartYear` varchar(500) DEFAULT NULL,
`MatrixStartSeason` varchar(500) DEFAULT NULL,
`MatrixStartMonth` varchar(500) DEFAULT NULL,
`MatrixEndYear` varchar(500) DEFAULT NULL,
`MatrixEndSeason` varchar(500) DEFAULT NULL,
`MatrixEndMonth` varchar(500) DEFAULT NULL,
`Population` varchar(500) DEFAULT NULL,
`LatDeg` varchar(500) DEFAULT NULL,
`LatMin` varchar(500) DEFAULT NULL,
`LatSec` varchar(500) DEFAULT NULL,
`LonDeg` varchar(500) DEFAULT NULL,
`LonMin` varchar(500) DEFAULT NULL,
`LonSec` varchar(500) DEFAULT NULL,
`LatitudeDec` varchar(500) DEFAULT NULL,
`LongitudeDec` varchar(500) DEFAULT NULL,
`Altitude` varchar(500) DEFAULT NULL,
`Country` varchar(500) DEFAULT NULL,
`Continent` varchar(500) DEFAULT NULL,
`MatrixSplit` varchar(500) DEFAULT NULL,
`Observation` varchar(500) DEFAULT NULL,
`MatrixClassOrganized` varchar(500) DEFAULT NULL,
`Matrixnumber` varchar(500) NOT NULL DEFAULT '',
`MatrixClassNumber` varchar(500) DEFAULT NULL,
`Dimension` varchar(500) DEFAULT NULL,
`plantType` varchar(500) DEFAULT NULL,
`matrix` varchar(15000) DEFAULT NULL,
`_ClassNames` varchar(16000) DEFAULT NULL,
`StatusStudy` varchar(500) DEFAULT NULL,
`StatusStudyRef` varchar(500) DEFAULT NULL,
`StatusElsewhere` varchar(500) DEFAULT NULL,
`StatusElsewhereRef` varchar(500) DEFAULT NULL,
PRIMARY KEY (`Matrixnumber`),

和“常见”:

  `ID` varchar(100) NOT NULL,
`CommonName` varchar(100) NOT NULL,
`ImageUrl` varchar(200) NOT NULL,
`UploadImgUrl` varchar(100) NOT NULL,
UNIQUE KEY `SpeciesAccepted` (`ID`),
KEY `ID` (`ID`)

我基本上使用坐标在 map 上绘制每条记录并显示“坐标”中的所有信息 - 这已经成功实现。表“common”包含为每个“SpeciesName”(coords.SpeciesName 和 common.ID)动态创建的新信息,因此我想显示 CommonName 并利用“ImageUrl”和“UploadedImgUrl”以及数据以前有过。我还是 MySQL 的新手,所以如果我的术语不完美,我深表歉意!

最佳答案

MYSQL的主要问题不是数据库大小或记录数!我见过高达 10-12 GB 的数据库文件。当您想要获取记录时,我会遇到主要问题,并且您可能会面临一次可以处理的查询数量问题!如果您注意执行查询的方式,就不会发生严重问题。

关于php - 具有大数据集的 MySQL 关系数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26343816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com