站长网 MySql教程 mysql – 创建行与列性能

mysql – 创建行与列性能

我构建了一个分析引擎,从我的数据库中提取50-100行原始数据(让我们称之为raw_table),在PHP上运行一系列统计测量,然后提出140个数据点,然后我需要存储在另一个表中(我们称之为results_table).所有这些数据点都是非常小的整数(“40”,“2.23”,“ 1024”是数

我构建了一个分析引擎,从我的数据库中提取50-100行原始数据(让我们称之为raw_table),在PHP上运行一系列统计测量,然后提出140个数据点,然后我需要存储在另一个表中(我们称之为results_table).所有这些数据点都是非常小的整数(“40”,“2.23”,“ – 1024”是数据类型的好例子).

我知道mysql的最大列数非常高(4000),但是当性能真正开始降低时,似乎有很多灰色区域.

这里有一些关于最佳性能实践的问题:

1)如果更好,140个数据点可以分成20行7个数据点,如果更少的列更好,则所有数据点都具有相同的“experiment_id”.但是我总是需要拉动所有20行(每行7列,加上id等),所以我不认为这比拉动1列140列更好.所以问题是:最好存储20行7-9列(这些都需要一次拉出)或1行140-143列?

2)鉴于我的数据示例(“40”,“ – 1024”是将要存储的内容的良好示例)我正在考虑结构类型的smallint.那里的任何反馈,表现方面还是其他方面?

3)欢迎任何有关mysql性能问题或提示的其他反馈.

提前感谢您的意见.

最佳答案
我认为存储更多行(即标准化)的优势取决于面对变化时的设计和维护考虑因素.

此外,如果140列具有相同的含义或者每个实验它们不同 – 根据规范化规则正确建模数据 – 即数据如何与候选键相关.

就性能而言,如果使用所有列,则会产生很小的差异.有时,对于大量数据,pivot / unpivot操作可能是昂贵的,但它对单个密钥访问模式几乎没有什么区别.有时,数据库中的数据透视表可以使您的前端代码更加简单,并且后端代码在变更时更加灵活.

如果你有很多NULL,那么可以消除规范化设计中的行,这样可以节省空间.我不知道MySQL是否支持稀疏表概念,它可以在那里发挥作用.

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/jc/mysql/2021/0524/5713.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部