Mysql数据库优化系列(四)------表的优化与列类型选择
2014-12-27 16:58
232 查看
表的优化:
1: 定长与变长分离
如 id int, 占4个字节, char(4) 占4个字符长度,也是定长, time
即每一单元值占的字节是固定的.
核心且常用字段,宜建成定长,放在一张表.
而varchar, text,blob,这种变长字段,适合单放一张表, 用主键与核心表关联起来.
2:常用字段和不常用字段要分离.
需要结合网站具体的业务来分析,分析字段的查询场景,查询频度低的字段,单拆出来.
3:合理添加冗余字段.
看如下BBS的效果
每个版块里,有N条帖子, 在首页,显示了版块信息,和版块下的帖子数.
这是如何做的?
boardid | boardname | postnum |
8 | 开班信息 | 2 |
9 | 每日视频及代码 | 1 |
postid | boardid | title |
123 | 8 | 论坛开张了 |
129 | 8 | 灌水 |
133 | 9 | 来一帖 |
再查post表,select count(*) from post group by board_id,得出每个版块下的帖子数.
如果有postnum字段,每发一个帖子时,对postnum字段+1;
再查询版块下的帖子数时, 只需要1条语句直接查boardid
select boradid, boardname,postnum from board;
典型的”空间换时间”
相关文章推荐
- mysql数据库优化--(2)设计 字段类型的选择
- mysql数据库优化--选择合适的数据类型
- mysql 优化系列(一) Mysql数据库引擎性能测试
- sql 优化之:聚集索引的重要性和如何选择聚集索引(系列五)
- MySQL数据库性能优化之存储引擎选择
- MySQL数据库性能优化之存储引擎选择(MyISAM、InnoDB、NDBCluster)
- 存储引擎选择是MySQL数据库一项性能优化工作
- MySQL查询优化系列讲座之数据类型与效率
- MySQL数据库性能优化之(五)存储引擎选择
- 算法优化,如何从120秒到0.5秒【数据结构的选择、数据类型的选择、运算优先级的选择、函数调用关系】
- mysql优化之选择数据类型
- MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)
- sql 优化之:聚集索引的重要性和如何选择聚集索引(系列五)
- MySQL 数据库性能优化之SQL优化(这是 MySQL数据库性能优化专题 系列的第四篇文章)
- 架构优化和索引--数据类型的选择
- MySQL数据库性能优化之存储引擎选择
- [MySQL优化案例]系列 -- 用TIMESTAMP类型取代INT和DATETIME
- Mysql数据库服务器性能配置优化二 -- 文件系统及IO调度算法的选择
- MySQL 数据库性能优化之表结构优化(这是 MySQL数据库性能优化专题 系列的第二篇文章)
- 算法优化,如何从120秒到0.5秒【数据结构的选择、数据类型的选择、运算优先级的选择、函数调用关系】