广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中怎么优化千万级数据表
  • 539
分享到

MySQL中怎么优化千万级数据表

2023-06-20 19:06:57 539人浏览 安东尼
摘要

MySQL中怎么优化千万级数据表,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我这里有张表,数据有1000w,目前只有一个主键索引CREATE TAB

MySQL中怎么优化千万级数据表,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

我这里有张表,数据有1000w,目前只有一个主键索引

CREATE TABLE `user` (  `id` int(10) NOT NULL AUTO_INCREMENT,  `uname` varchar(20) DEFAULT NULL COMMENT '账号',  `pwd` varchar(20) DEFAULT NULL COMMENT '密码',  `addr` varchar(80) DEFAULT NULL COMMENT '地址',  `tel` varchar(20) DEFAULT NULL COMMENT '电话',  `regtime` char(30) DEFAULT NULL COMMENT '注册时间',  `age` int(11) DEFAULT NULL COMMENT '年龄',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=10000003 DEFAULT CHARSET=utf8;

MySQL中怎么优化千万级数据表

查询所有大概16s。可谓是相当慢了。通常我们一个后台系统,比如这个是一个电商平台,这个是用户表。后台管理系统,一般会查询这些用户信息,做一些操作,比如后台直接新增用户啊,或者删除用户啊这些操作。

所以这里就诞生了两个需求,一个是查询count,一个是分页查询

我们分别来测试一下count用的时间和分页查询所用的时间

select * from user limit 1, 10   //几乎不用时select * from user limit 1000000, 10  //0.35sselect * from user limit 5000000, 10  //1.7sselect * from user limit 9000000, 10  //2.8sselect count(1) from user  //1.7s

从上面查询所用时间可以看出来,如果是分页查询的话,查询的数据越往后用时是越长的,查询count也需要1.7s。这显然是不符合我们的要求的。所以,这里我们就需要优化。首先我们这里进行索引优化试试
首先看一下这是只有主键索引的执行计划:

MySQL中怎么优化千万级数据表

alter table `user` add INDEX `sindex` (`uname`,`pwd`,`addr`,`tel`,`regtime`,`age`)

MySQL中怎么优化千万级数据表

看上面的执行计划,虽然type是从all->index,走了sindex索引,但是实际上查询速度并没有发生改变。

其实,创建联合索引,是为了有条件查询的时候速度更快,而不是全表查询

select * from user where uname='6.445329111484186' //3.5s(无联合索引)select * from user where uname='6.445329111484186' //0.003s(有联合索引)

所以这就是有联合索引和无索引的差距

这里基本上可以证明,加了索引和不加索引,进行全表查询的时候,效率就是会很慢

既然索引这个结果已经不好使了,那就只能找其他方案了。根据我之前Mysql面试里面讲的,count我们可以单独存储到一个表里面

CREATE TABLE `attribute` (  `id` int(11) NOT NULL,  `fORMname` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '表名',  `formcount` int(11) NOT NULL COMMENT '表总数据',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

MySQL中怎么优化千万级数据表

这里说一下,这种表一般不会查所有,只会查询一条,所以建表的时候,可以建成hash

select formcount from attribute where formname='user' //几乎不用时

count就进行优化完了。如果上面有选择条件的话,就可以建立索引,通过走索引筛选的形式来查询,这样就可以不用读这个count了。

那么,count是没问题了,分页查询优化要如何优化呢?这里可以使用子查询来优化

select * from user whereid>=(select id from user limit 9000000,1) limit 10 //1.7s

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网数据库频道,感谢您对编程网的支持。

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中怎么优化千万级数据表

本文链接: https://www.lsjlt.com/news/299532.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中怎么优化千万级数据表
    MySQL中怎么优化千万级数据表,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我这里有张表,数据有1000w,目前只有一个主键索引CREATE TAB...
    99+
    2023-06-20
  • mysql千万级大表的优化
    ...
    99+
    2016-05-12
    mysql千万级大表的优化
  • MySQL千万级数据优化方案
    简介                           ↓↓↓处理千万级数据的MySQL数据库,可以采取以下优化措施↓↓↓                                                       ...
    99+
    2023-10-24
    mysql 数据库
  • MySQL千万级数据表的优化实战记录
    前言 这里先说明一下,网上很多人说阿里规定500w数据就要分库分表。实际上,这个500w并不是定义死的,而是与MySQL的配置以及机器的硬件有关。MySQL为了提升性能,会将表的索引...
    99+
    2022-11-12
  • MySQL千万级数据的大表优化解决方案
    目录1.数据库设计和表创建时就要考虑性能设计表时要注意:索引简言之就是使用合适的数据类型,选择合适的索引引擎2.sql的编写需要注意优化3.分区分区的好处是:分区的限制和缺点:分区的类型:4.分表5.分库mysql数据库...
    99+
    2022-11-20
    mysql千万级数据 mysql优化
  • Mysql千万级别水平分表优化
      需求:随着数据量的增加单表已经不能很好的支持业务,千万级别数据查询缓慢   Mysql数据优化方案:   方案一:使用myisam进行水平分表优化   方案二:使用mysql分区优化   一:Myisam水平分区   1、创建...
    99+
    2016-01-31
    Mysql千万级别水平分表优化
  • MySQL 对于千万级的大表要怎么优化?
    首先采用Mysql存储千亿级的数据,确实是一项非常大的挑战。Mysql单表确实可以存储10亿级的数据,只是这个时候性能非常差,项目中大量的实验证明,Mysql单表容量在500万左右,性能处于最佳状态。 针对大表的优化,主要是通过数据库...
    99+
    2015-09-18
    MySQL 对于千万级的大表要怎么优化?
  • Mysql中怎么优化千万级快速分页
    本篇文章为大家展示了Mysql中怎么优化千万级快速分页,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 数据表 collect ( id, title ,info ...
    99+
    2022-10-18
  • php千万级数据如何优化
    优化千万级数据的方法主要包括以下几方面:1. 数据库优化:对数据库进行索引、分区、分表等操作,提高数据库的读写性能。可以根据查询频率...
    99+
    2023-09-06
    php
  • 千万级数据的mysql数据库与优化方法
    本篇内容主要讲解“千万级数据的mysql数据库与优化方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“千万级数据的mysql数据库与优化方法”吧!1.对查询进行...
    99+
    2022-10-18
  • 怎么样优化mysql千万级数据分页查询性能
    本文主要给大家简单讲讲怎么样优化mysql千万级数据分页查询性能,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望怎么样优化mysql千万级数据分页查询性能这篇...
    99+
    2022-10-18
  • MySQL中怎么按表创建千万级的压测数据
    这期内容当中小编将会给大家带来有关MySQL中怎么按表创建千万级的压测数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 准备测试表CREATE TABLE...
    99+
    2022-10-18
  • MySQL两千万数据优化&迁移
    最近有一张2000W条记录的数据表需要优化和迁移。2000W数据对于MySQL来说很尴尬,因为合理的创建索引速度还是挺快的,再怎么优化速度也得不到多大提升。不过这些数据有大量的冗余字段和错误信息,极不方便做统计和...
    99+
    2022-05-25
    mysql
  • phper使用MySQL 针对千万级的大表要怎么优化?
     有需要学习交流的友人请加入交流群的咱们一起,有问题一起交流,一起进步!前提是你是学技术的。感谢阅读! 点此加入该群​jq.qq.com 首先采用Mysql存储千亿级的数据,确实是一项非常大的挑战。Mysql单表确实可以存储10亿级的数据,...
    99+
    2020-09-12
    phper使用MySQL 针对千万级的大表要怎么优化?
  • 怎么在MySql中插入千万级大数据
    今天就跟大家聊聊有关怎么在MySql中插入千万级大数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一步,读取文件,开始插入多线程在这里,达到一定...
    99+
    2022-10-18
  • MySQL千万级数据查询的优化技巧及思路
    随着数据量的不断增长,MySQL千万级数据查询的优化问题也日益引人注目。在这篇文章中,我们将深入探讨MySQL千万级数据查询优化的方法和技巧,以帮助开发者更好地优化MySQL性能。 一、数据库设计 数据库设计是优化查询性能的关键,以下是一些...
    99+
    2023-09-03
    数据库 mysql java
  • 怎么在mysql中优化百万级数据表的查询
    怎么在mysql中优化百万级数据表的查询?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的...
    99+
    2023-06-15
  • oracle千万级数据怎么查询
    查询千万级数据可以采用以下方法:1. 使用索引:对于经常需要查询的字段,可以创建索引来加快查询速度。索引可以提高查询性能,但会增加写...
    99+
    2023-09-13
    oracle
  • springbatch怎么处理千万级数据
    处理千万级数据的方法可以通过以下步骤实现:1. 分批读取数据:使用Spring Batch的chunk机制,将数据分批读取到内存中。...
    99+
    2023-08-18
    springbatch
  • 30个mysql千万级大数据SQL查询优化技巧详解
    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作