推广 热搜: 广场  Java  app  Word  营业  微信公众号  北京代理记账  商城  代理记账  商标交易 

mysql数据库优化的几种方式 mysql怎么处理一秒10万并发?

   2023-05-07 企业服务招财猫70
核心提示:mysql怎么处理一秒10万并发?mysql的高并发有:优化SQL语句、优化数据库字段、添加缓存、分区表、读写分离、垂直拆分、解耦模块、水平拆分等。高并发的瓶颈大多在后台。存储mysql的常规优化方案

mysql怎么处理一秒10万并发?

mysql的高并发有:优化SQL语句、优化数据库字段、添加缓存、分区表、读写分离、垂直拆分、解耦模块、水平拆分等。

高并发的瓶颈大多在后台。存储mysql的常规优化方案如下:

(1)代码中的sql语句优化

(2)数据库字段优化和索引优化

(3)添加缓存、redis/memcache等。

(4)主从式,读写分离

(5)分区表

(6)垂直分离和解耦模块

(7)水平分割

方案分析:

1.方法1方法2是最简单快捷的提高效率的方法。因为每条语句都命中索引,所以效率最高。但是,如果构建索引是为了优化sql,那么索引将被淹没。对于1000万级以上的表,维护索引的成本会大大增加,增加数据库的内存开销。

2.数据库字段的优化。有一次发现一个高级程序员s设计一个表字段,一个日期类型,被设计成varchar类型,不规范,同时无法检查写入的数据,索引的效率也不一样。

3.缓存适用于读写更新频率相对较低的业务场景,否则缓存异议不大,命中率低。总的来说,缓存主要是为了提高接口处理速度,减少并发带来的db压力以及由此带来的其他问题。

4.分区不是表,但结果仍然是表,只是存储的数据文件被分成了几个小块。在表数据非常大的情况下,可以解决无法一次性加载到内存中,维护大表数据的问题。

5.垂直拆分将一个表按列拆分成多个表,常见的是将主表的扩展数据和文本数据分开,减轻磁盘io的压力。

6.水平分割。水平拆分的主要目的是提高单个表的并发读写能力(压力分散到各个子表)和磁盘的IO性能(一个非常大的。MYD文件在。每个子表的MYD文件)。如果没有一千万级别以上的数据,为什么要拆分?也可以只优化一个表。如果没有太多并发,分区表一般都能满足。所以一般来说,横劈是最后的选择,在设计上还是需要循序渐进。

如何强制mysql使用某一个index?

根据mysql文档,第一个是多列索引,可用于指定已知范围内的user_id或user_id和blog_id的值的查询。

第二个是定义两个单列索引。如果单列和多列索引同时存在,mysql优化器会通过决定哪个索引找到的行数更少并使用它来获取行,来尝试找到一个更具限制性的索引。以上来自我个人对mysql帮助文档的理解,欢迎Daniel■批评指正。

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
合作伙伴
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  冀ICP备2023006999号-8