mysql千万级数据大表该如何优化?

 更新时间:2011年08月06日 23:12:55   作者:  
如何设计或优化千万级别的大表?此外无其他信息,个人觉得这个话题有点范,就只好简单说下该如何做,对于一个存储设计,必须考虑业务特点,收集的信息如下
1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节;

2.数据项:是否有大字段,那些字段的值是否经常被更新;
3.数据查询SQL条件:哪些数据项的列名称经常出现在WHERE、GROUP BY、ORDER BY子句中等;
4.数据更新类SQL条件:有多少列经常出现UPDATE或DELETE 的WHERE子句中;
5.SQL量的统计比,如:SELECT:UPDATE+DELETE:INSERT=多少?

6.预计大表及相关联的SQL,每天总的执行量在何数量级?
7.表中的数据:更新为主的业务 还是 查询为主的业务
8.打算采用什么数据库物理服务器,以及数据库服务器架构?
9.并发如何?
10.存储引擎选择InnoDB还是MyISAM?

大致明白以上10个问题,至于如何设计此类的大表,应该什么都清楚了!

至于优化若是指创建好的表,不能变动表结构的话,那建议InnoDB引擎,多利用点内存,减轻磁盘IO负载,因为IO往往是数据库服务器的瓶颈

另外对优化索引结构去解决性能问题的话,建议优先考虑修改类SQL语句,使他们更快些,不得已只靠索引组织结构的方式,当然此话前提是,
索引已经创建的非常好,若是读为主,可以考虑打开query_cache,

以及调整一些参数值:sort_buffer_size,read_buffer_size,read_rnd_buffer_size,join_buffer_size

其他人建议:

1. 索引, 避免扫描,基于主键的查找,上亿数据也是很快的;
2. 反范式化设计,以空间换时间,避免join,有些join操作可以在用代码实现,没必要用数据库来实现;

相关文章

  • mysql实现将字符串字段转为数字排序或比大小

    mysql实现将字符串字段转为数字排序或比大小

    这篇文章主要介绍了mysql实现将字符串字段转为数字排序或比大小,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • MySQL默认字符集设置详情

    MySQL默认字符集设置详情

    这篇文章主要介绍了MySQL默认字符集设置详情,在MySQL 8.0版本之前,默认字符集为latin1 ,utf8字符集指向的是utf8mb3,更多相关内容介绍,需要的小伙伴可以参考一下
    2022-09-09
  • linux下导入、导出mysql数据库命令的实现方法

    linux下导入、导出mysql数据库命令的实现方法

    下面小编就为大家分享一篇linux下导入、导出mysql数据库命令的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • MySQL中BETWEEN子句的用法详解

    MySQL中BETWEEN子句的用法详解

    这篇文章主要介绍了MySQL中BETWEEN子句的用法详解,是MySQL入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • MYSQL数据库主从同步设置的实现步骤

    MYSQL数据库主从同步设置的实现步骤

    本文主要介绍了MYSQL数据库主从同步设置的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • MySql批量删除多个表的方法

    MySql批量删除多个表的方法

    本文主要介绍了MySql批量删除多个表的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • mysql模糊查询like和regexp小结

    mysql模糊查询like和regexp小结

    在mysql中实现模糊查询有两种方法一种是LIKE/NOT LIKE,另一种是REGEXP/NOT REGEXP方法,下面我来给大家介绍它们的用法,希望此教程对各位同学会有所帮助。
    2014-09-09
  • 基于sqlalchemy对mysql实现增删改查操作

    基于sqlalchemy对mysql实现增删改查操作

    这篇文章主要介绍了基于sqlalchemy对mysql实现增删改查操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • mysql中索引使用不当速度比没加索引还慢的测试

    mysql中索引使用不当速度比没加索引还慢的测试

    mysql的索引使用不当速度比没加索引还慢,我们举个例子来解释一下。
    2011-08-08
  • Mysql DateTime 查询问题解析

    Mysql DateTime 查询问题解析

    这篇文章主要为大家介绍了Mysql DateTime查询问题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11

最新评论