![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
文章平均质量分 92
风清扬鍀师傅
java/javascript/linux/架构
展开
-
高性能mysql 数据类型优化总结
一.数据类型优化原则1.尽量选择可以存储数据的最小数据类型,因为更小的占用内存和cpu更少2.尽量避免null ,因为在后期优化更复杂3.选用枚举代替字符串4.范式和反范式的应用,在项目中根据实际情况可以混用,针对于写密集的场景,建议应用范式,针对读密集且数据改变不大的场景可以适当的冗余部分字段,减少多表关联查询。5.缓存表和汇总表的应用...原创 2020-06-13 22:31:49 · 76 阅读 · 0 评论 -
2020-11-28
在进行MySQL的优化之前,必须要了解的就是MySQL的查询过程,很多查询优化工作实际上就是遵循一些原则,让MySQL的优化器能够按照预想的合理方式运行而已。图-MySQL查询过程1 优化的哲学注:优化有风险,涉足需谨慎a 优化可能带来的问题? 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统; 优化手段本来就有很大的风险,只不过你没能力意识到和预见到; 任何的技术可以解决一个问题,但必然存在带来一个问题的风险;...转载 2020-11-28 17:08:35 · 313 阅读 · 0 评论 -
互联网公司MySQL数据库采用读已提交的隔离级别原因
开始我们的内容,相信大家一定遇到过下面的一个面试场景面试官:“讲讲mysql有几个事务隔离级别?”你:“读未提交,读已提交,可重复读,串行化四个!默认是可重复读”面试官:“为什么mysql选可重复读作为默认的隔离级别?”(你面露苦色,不知如何回答!)面试官:"你们项目中选了哪个隔离级别?为什么?"你:“当然是默认的可重复读,至于原因。。呃。。。”(然后你就可以回去等通知了!)为了避免上述尴尬的场景,请继续往下阅读!Mysql默认的事务隔离级别是可重复读(Repeatable Rea转载 2021-10-12 10:07:34 · 2254 阅读 · 2 评论 -
MySQL数据库之分库分表方案
数据库之互联网常用分库分表方案一、数据库瓶颈1、IO瓶颈2、CPU瓶颈二、分库分表1、水平分库2、水平分表3、垂直分库4、垂直分表三、分库分表工具四、分库分表步骤五、分库分表问题1、非partition key的查询问题(水平分库分表,拆分策略为常用的hash法)2、非partition key跨库跨表分页查询问题(水平分库分表,拆分策略为常用的hash法)3、扩容问题(水平分库分表,拆分策略为常用的hash法)六、分库分表总结七、分库分表示例转载 2020-12-02 19:00:58 · 1457 阅读 · 0 评论 -
记录一次线上SQL优化
通过线上慢SQL追踪到线上一条超级慢SQL大概介绍一下sc_fr_sale_wdt 总数达到100W 数据sc_fr_sale_wdt_detail 有250W数据select distinct wdt.`id` ,wdt.`origin_order_code`,wdt.`record_code`,wdt.`out_record_code`,wdt.`channel_code`, wdt.`real_warehouse_id` , wdt.`virtual_warehouse_id`,wd...原创 2020-08-31 19:36:00 · 122 阅读 · 0 评论 -
高性能mysql 查询优化
1.定位查询慢的原因 是否向服务器请求了不需要的数据.mysql是否在扫描额外的记录2.重构查询方式 一个复杂查询还是多个简单查询,比如常用的分段处理方式 多个jion拆分成多个单表3.查询执行的基础 mysql客户端/服务端通信协议 ---查询缓存--查询优化处理器---查询执行引擎---返回给客户端4.避免使用in在子查询中5.可以将子查询改造成关联查询6.非必要的情况下将union 改成union all...原创 2020-06-14 15:38:59 · 76 阅读 · 0 评论 -
高性能mysql 索引的优化
1.根据场景选择合适的索引(btree/hash)注意区分两个区别及适用场景2.查询中不是独立的列不能使用索引 如:select actor.id from fm.actor where actor_id +1>5 不会使用索引3.索引的长度不能太长,可以通过left(city,n)/count 截取字符串的长度和总长度的比例 进行统计 判断出合适的比例4.最左原则,联合索引的时候 索引是根据最左原则进行匹配5.选择索引的顺便,需要根据数量的比例来进行判断哪个字段在前面,5.索原创 2020-06-13 22:56:13 · 99 阅读 · 0 评论 -
SQL优化之Explain 执行计划详解
Explain有什么用当Explain 与 SQL语句一起使用时,MySQL 会显示来自优化器关于SQL执行的信息。也就是说,MySQL解释了它将如何处理该语句,包括如何连接表以及什么顺序连接表等。表的加载顺序 sql 的查询类型 可能用到哪些索引,哪些索引又被实际使用 表与表之间的引用关系 一个表中有多少行被优化器查询 .....Explain有哪些信息Explain 执行计划包含字段信息如下:分别是 id、select_type、table、partitions、type、poss转载 2020-06-11 12:48:53 · 177 阅读 · 0 评论 -
SQL执行顺序
sql的执行顺序1.from2.on3 join4.where5.group by6.avg sum(聚合函数)7.having8.select9.distinct10.order by11 limit原创 2019-10-20 21:06:02 · 320 阅读 · 0 评论