`

Mysql数据表的优化

 
阅读更多
优化表的数据类型

表需要使用何种数据类型,是需要根据应用来判断的。虽然应用设计的时候需要考虑字段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即浪费存储也浪费内存。

我们可以使用PROCEDURE ANALYSE()对当前已有应用的表类型的判断,该函数可以对数据表中的列的数据类型提出优化建议,可以根据应用的实际情况酌情考虑是否实施优化。语法:
   SELECT * FROM tbl_name PROCEDURE ANALYSE();
   SELECT * FROM tbl_name PROCEDURE ANALYSE(16,256);

输出的每一列信息都会对数据表中的列的数据类型提出优化建议。第二个例子告诉PROCEDURE ANALYSE()不要为那些包含的值多于16个或者256字节的ENUM类型提出建议。如果没有这样的限制,输出信息可能很长;ENUM定义通常很难阅读。

在对字段类型进行优化时,可以根据统计信息并结合应用的实际情况对其进行优化。
通过拆分,提高表的访问效率

这里我们所说的拆分,主要是针对Myisam类型的表,拆分的方法可以分成两种情况:

1) 纵向拆分:
纵向拆分是只按照应用访问的频度,将表中经常访问的字段和不经常访问的字段拆分成两个表,经常访问的字段尽量是定长的,这样可以有效的提高表的查询和更新的效率。

2) 横向拆分:
横向拆分是指按照应用的情况,有目的的将数据横向拆分成几个表或者通过分区分到多个分区中,这样可以有效的避免Myisam表的读取和更新导致的锁问题。
逆规范化

数据库德规范化设计强调数据的独立性,数据应该尽可能少地冗余,因为存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题。

但是对于查询操作很多的应用,一次查询可能需要访问多表进行,如果通过冗余纪录在相同表中,更新的代价增加不多,但是查询操作效率可以有明显提高,这种情况就可以考虑通过冗余数据来提高效率。
使用冗余统计表

使用create temporary table语法,它是基于session的表,表的数据保存在内存里面,当session断掉后,表自然消除。

对于大表的统计分析,如果统计的数据量不大,利用insert, select将数据移到临时表中比直接在大表上做统计要效率更高。
选择更合适的表类型

1、如果应用出现比较严重的锁冲突,请考虑是否更改存储引擎到innodb,行锁机制可以有效的减少锁冲突的出现。
2、如果应用查询操作很多,且对事务完整性要求不严格,则可以考虑使用Myisam存储引擎。
分享到:
评论

相关推荐

    千万级别数据的mysql数据表优化

    出发点  比如,现在有这么一个问题,常见的一个面试题: ...  追溯到数据表的设计,sql查询语句的调优,并且需要考虑到这种大表的数据插入时候的注意事项,数据分页及未来数据表管理时可能遇见的问

    Mysql 海量数据性能优化.rar

    mysql

    MySQL海量数据查询优化策略.

    MySQL海量数据查询优化策略,方法。 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引...

    MySQL数据查询优化

    MySQL数据查询优化,应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

    45-MySQL单表2000万数据查询慢解决方案1

    45-MySQL单表2000万数据查询慢解决方案1

    MYSQL数据库优化与表设计

    MYSQL在大量数据高并发时如果设计不当,由于性能问题,会导致卡顿,时延较大影响,本文介绍MYSQL的一些优化方法和案例,帮助解决并发中遇到的问题。

    mysql数据库sql优化

    1. SQL优化 1 1.1. 优化实战 1 1.1.1. 策略1.尽量全值匹配 1 1.1.2. 策略2.最佳左前缀法则 2 1.1.3. 策略3.不在索引列上做任何操作 2 1.1.4. 策略4.范围条件放最后 3 1.1.5. 策略5.覆盖索引尽量用 3 1.1.6. 策略6.不...

    MYSQL优化-一篇很好的优化文章

    15. 优化表 16. MYSQL如何次存储数据 17. MYSQL表类型 18. MYSQL行类型(专指IASM/MYIASM表) 19. MYSQL缓存 20. MYSQL表高速缓存工作原理 21. MYSQL扩展/优化-提供更快的速度 22. MYSQL何时使用索引 23. ...

    Mysql百万级数据优化方案.txt

    Mysql百万级数据优化方案

    Mysql千万级别数据优化方案

    Mysql千万级别数据优化方案

    MySQL数据库的优化

    MySQL介绍、架构、什么优化、查询优化、索引使用、存储优化、数据库结构优化、硬件优化、MySQL缓存、MySQL服务器参数

    Mysql 百万级数据优化资料

    Mysql 百万级数据优化资料

    MySQL海量数据存储与优化(上).pdf

    mysql海量数据存储与优化

    mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了...

    MySQL大表性能优化方案 和 MySQL高性能表设计规范

    正对mysql,单个表数据量过大的优化方案,与高性能的表设计规范,提供数据库tps。希望对大家有帮助

    mysql大数据量优化

    mysql数据优化详介绍:使用连接来代替子查询,使用联合来代替手动创建临时表,事物,使用外键等等

    Mysql性能优化教程

    Mysql 执行优化 2 认识数据索引 2 为什么使用数据索引能提高效率 2 如何理解数据索引的结构 2 优化实战范例 3 认识影响结果集 4 影响结果集的获取 4 影响结果集的解读 4 常见案例及优化思路 5 理解执行状态 7 常见...

    Mysql表索引优化与底层数据结构深入剖析

    Mysql表索引优化与底层数据结构深入剖析

    MySQL数据库设计、优化.pptx

    持续写入,避免瞬间压力 超长text/blob进行垂直拆分,并先行压缩 冷热数据进行水平拆分,LRU原则 快速更新大数据表禁止直接运行count(*)统计 MySQL数据库设计、优化全文共24页,当前为第3页。 规范 基础规范 单表行...

    mysql优化笔记.doc

     Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引] c: 分表技术(水平分割、垂直分割)...

Global site tag (gtag.js) - Google Analytics