加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql – 创建行与列性能

发布时间:2021-05-23 22:06:02 所属栏目: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是否支持稀疏表概念,它可以在那里发挥作用.

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读