2016 - 2024

感恩一路有你

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

浏览量:2956 时间:2021-03-28 20:29:56 作者:admin

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

mysql在常规配置下,一般只能承受2000万的数据量(同时读写,且表中有大文本字段,单台服务器)。现在超过1亿,并不断增加的情况下,建议如下处理:

1 分表。可以按时间,或按一定的规则拆分,做到查询某一条数据库,尽量在一个子表中即可。这是最有效的方法

2 读写分离。尤其是写入,放在新表中,定期进行同步。如果其中记录不断有update,最好将写的数据放在 redis中,定期同步

3 表的大文本字段分离出来,成为独立的新表。大文本字段,可以使用NOSQL数据库

4 优化架构,或优化SQL查询,避免联表查询,尽量不要用count(*), in,递归等消耗性能的语句

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

上面是低成本的管理方法,基本几台服务器即可搞定,但是管理起来麻烦一些。


当然,如果整体数据量特别大的话,也不在乎投入费用的话,用集群吧,用TIDB吧

怎么mysql从数据库查最近7天的数据?

mysql中如何查询最近24小时、where visittime >= NOW() - interval 1 hour昨天、where visittime between CURDATE()-interval 1 day and CURDATE()最近7天、where visittime between CURDATE()-interval 7 day 上周、where week(visittime)= week(CURDATE()-interval 7 day )and year(visittime)=year(CURDATE()-interval 7 day )最近30天、where visittime between CURDATE()-interval 30 day

MYSQL查询一周内的数据(最近7天的)怎么写?

date(column_time)查询一年:select * from table where DATE_SUB(CURDATE(), INTERVAL 1 YEAR) DATE_ADD((select createdate from tb_equity ORDER BY createdate DESC limit 1) ,INTERVAL -7 day)and (select createdate from tb_equity ORDER BY createdate DESC limit 1) >= createdate3,sql查询表中的重复数据select * from 表名 where 字段名 in (select 字段名 from 表名 group by 字段名 HAVING COUNT(*) > 1) order by 表名

mysql如何查询最新的5条数据?

进入mysql管理页面,点击进行执行SQL语句页面,输入以下内容:SELECT * from 你要查的表名 where 自增长的主键/日期 ORDER BY createtime DESC LIMIT 5,然后点击运行,就能看到结果了。

mysql数据库 mysql查询最新的一条记录 mysql语句

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