MySQL中的大表和大事务

MySQL中的大表和大事务,第1张

    千万行数据,表数据巨大。

                1、慢查询的产生:很难在一定时间内过滤出所需要的数据。

                2、建立索引需要更长的时间。

                                Mysql版本<5.5 建立索引会锁表

                                Mysql版本>=5.5 谁让不会锁表,但会引起主从延迟。

                3、修改表结构需要长时间锁定表

                4、会造成长时间的主从延迟。

                5、影响正常的数据 *** 作

                1、分库分表把一张大表分为多个小表

                    难点:

                        分表主键的选择

                        分表后跨分区数据 的查询和统计

                2、大表的历史数据归档

                   好处:

                        减少对前后端业务的影响。

                   难点:

                        归档时间点的选择

                        如何进行归档 *** 作。

        运行时间比较长, *** 作的数据比较多的事务。

            锁定太多的数据,造成大量的阻塞和锁超时。

            回滚时间比较长

            执行时间比较长,容易造成主从延迟。

            避免一次处理太多的数据。

            移除不必要在事务中 *** 作的select *** 作

这么大的表优化是很痛苦的,看你对数据的用途,如果不经常查询、而是频繁的增加,可以考虑定期(每周或者每日)把表中的数据复制到历史表中,清空工作表的数据,这样插入的效率能大大提高,但是查询的时候需要在两个表中进行查询。用于频繁插入数据的工作表要尽量少建索引,用于查询的历史表要多建索引。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8564420.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存