2016 - 2024

感恩一路有你

mysql体系结构 mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决方式?

浏览量:1776 时间:2021-03-13 03:51:23 作者:admin

mysql表数据量太大,达到了1亿多条数据,除了分库分表之外,还有没有其他的解决方式?

在正常配置下,MySQL只能承载2000万数据(同时读写,表中有大文本字段,单服务器)。现在已经超过1亿,而且还在增加,建议按以下方式处理:

1子表。它可以按时间或一定的规则进行拆分,以便尽可能地查询子表中的数据库。这是最有效的方法。特别是写,放入一个新表,并定期同步。如果记录不断更新,最好将写入的数据放在redis中,并定期同步表3的大文本字段,将它们分隔成一个新的独立表。对于较大的文本字段,可以使用NoSQL数据库

4优化体系结构,或者优化SQL查询,避免联合表查询,尽量不要使用count(*)、in、recursion等性能消耗语句

5使用内存缓存,或者在前端读取时增加缓存数据库。重复读取时,直接从缓存中读取。

以上是一种低成本的管理方法,基本上几个服务器就可以做到,但是管理起来有点麻烦。

当然,如果总体数据量特别大,并且您不关心投资成本,请使用cluster和tidb

1。优化SQL语句、索引和表结构。

2. 打开查询缓存时,查询缓存缓存选择查询及其结果数据集。当执行同一个select查询时,MySQL将直接从内存中检索结果,这加快了查询的执行速度,减少了对数据库的压力。执行show变量,比如“have”uqueryucache,您可以检查MySQL查询缓存是否打开。要打开查询缓存,只需配置我的.cnf具体如下:

querycacheuuutype=1

querycacheuusize=128M

querycacheulimit=1m

保存后重新启动mysql。

3. 选择InnoDB存储引擎。MySQL常用的存储引擎是MyISAM和InnoDB。它们之间的区别如下:

MyISAM

查询速度快;

支持表级锁,在此期间不能对表执行其他操作;

支持全文检索;

支持数据压缩、自复制、查询缓存和数据加密;

不支持外键;

不支持事务,因此没有提交和回滚操作;

不支持群集数据库。

InnoDB

支持行级锁;

支持外键和外键约束强制执行;

支持事务,可以执行提交和回滚操作;

支持数据压缩、自复制、查询缓存和数据加密;

可以在群集环境中使用,但不完全支持。InnoDB表可以转换为NDB存储引擎,可以在集群环境下使用。

mysql优化教程?

1. 什么是数据库?什么是关系数据库?什么是非关系数据库?

2. 安装MySQL

3。MySQL的连接

4。MySQL数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库

相关内容:全球化和本地化[数据库选项

]5。MySQL数据表的基本操作:表结构操作、段操作

基本知识:MySQL的数据类型和字段属性

6。MySQL数据的基本操作

高级查询:[7。完成MySQL学习的select语句

8。MySQL的连接查询、联合查询和子查询

9。MySQL的外键

10。MySQL的常用函数

聚合函数

字符串函数,数值函数和时间日期函数

11。MySQL的索引

12。查看MySQL

13。MySQL的变量

14。MySQL的触发器

15。MySQL的存储过程

16。MySQL的自定义函数

17。MySQL的游标

18。MySQL的代码执行结构

19。MySQL的事务管理

20。MySQL的用户管理

21。MySQL的用户权限管理

22。MySQL的数据备份和恢复

23。MySQL的日志管理[占用空间,什么时候可以再写?这里显示的是知识点,还有这个知识点

]24。MySQL的诊断与性能优化[空间占用,有时间写的时候,这里是用来显示知识点的,还有这个知识点

]补充:

25。MySQL的全球化和本地化:字符集,校对集,中文编码问题

26。MySQL的系统默认数据库

范例

]锁定机制

以MySQL为列:

1:支持高并发系统,这肯定会涉及,所以数据库引擎必须选择InnoDB。InnoDB支持事务,事务级别取决于业务。如果业务数据一致性要求非常高,事务将启动序列化级别,这将完全隔离事务,但会导致对锁资源的竞争加剧。MySQL的性能在一定程度上降低了。

2:数据库分为主数据库和从数据库。主数据库负责写入数据,集群数据库负责读取数据。注意主从数据库的数据一致性。

3:冷热数据分离,美团、饥饿部分设计采用冷热数据分离。以订单为例,出库单的主要业务场景是查询。数据查询越向前,概率越低。这是冷数据。正在交易的订单是热点数据,需要随时查询和更新。冷数据可以放入redis缓存。这将提高查询效率。

4:数据表设计,充分利用索引查询。businesssql避免返回无用的行和列,禁止使用select*query,在查询时增加限制,并尽可能返回满足要求的行。对于复杂的SQL,请考虑拆分SQL。拆分SQL有一个优点。对于重复查询SQL,将第二次查询放入MySQL缓冲区,避免重复磁盘操作,提高访问性能。

5:子数据库和子表。例如,业务数据按月份分类。在一定程度上,增加、删除、修改和检查的压力将得到缓解。

希望对您有所帮助。谢谢您。

mysql体系结构 mysql体系结构图 数据库体系结构

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。