![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
万事无Bug
南昌大学 低调学Java
展开
-
MySQL大表优化方案
MySQL大表优化方案整理自:原文链接前言:当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化:单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负转载 2021-08-29 19:09:29 · 237 阅读 · 0 评论 -
SQL语句执行速度慢的原因
SQL语句执行速度慢前言:针对SQL语句执行很慢,我们分两种情况去看。一种是一直执行都很慢,二是仅仅只有几条SQL语句执行慢。速度偶尔变慢:1、数据库正在刷新脏页(flush)要知道,我们对数据库进行增删改之后,内存中修改的数据不会马上同步到磁盘,而是先记录在日志中,等到空闲时间,才会通过日志将内存数据同步到磁盘中。这个同步数据过程就是刷新脏页。刷新脏页触发条件:1、MySQL认为系统空闲2、MySQL正常关闭的时候,也会刷新脏页。3、日志写满了,不得不中断其他操作,先进行刷新脏页,然后清原创 2021-08-29 18:42:23 · 2555 阅读 · 0 评论 -
MySQL优化之分库分表
MySQL优化之分库分表前言:分库分表,指的是,垂直分库,垂直分表,水平分库,水平分表。在这里我就简单给大家介绍一下吧。垂直分表:当数据库中某一张表字段过多,且存在许多不经常使用到的字段,或者数据太大的字段,如果不作改动,那么我们每一次全表查询(聚集索引查询)的时候,这将增加系统IO负担。如果我们进行垂直分表,即将不常用的字段和数据量过大的字段用另一张表存储,同时保留和原表对应的主键,那么我们再进行查询时,就能极大减轻系统负担,同时加快速度。水平分表:当我们表内行数过多,导致查询速度较慢,我们可原创 2021-08-23 00:01:00 · 279 阅读 · 0 评论 -
MySQL锁详解
MySQL锁详解概述:锁是计算机协调多个进程或者线程并发访问某一资源的机制锁的分类按粒度分类:1、表级锁操作时会锁定整张表2、行级锁按功能分类:操作时会锁定整行1、共享锁(读锁)可以多个事务拥有此锁,拥有此锁的事务仅仅能进行读操作,不能进行写操作。2、排它锁(写锁)该锁只能被一个事务占用,获取该锁的事务可以进行读写操作,且禁止其他事务进行读写。其中MyISAM存储引擎支持者表锁,InnoDB存储引擎既支持表锁,也支持行锁。由于目前数据库主要使用InnoDB存储引擎,故不对MyIS原创 2021-08-21 15:20:28 · 73 阅读 · 0 评论 -
MySQL索引失效总结
MySQL索引失效总结这一篇内容就直接转载一位博主的了,讲的详细。索引失效总结另外做个补充:查询语句中使用 not in 也会导致索引失效select * from table1 where name not in ('小白说','Java说')原创 2021-08-21 13:56:42 · 86 阅读 · 0 评论 -
MySQL最左前缀匹配原则
MySQL最左前缀匹配原则举个栗子:当我们建立联合索引(a,b,c),索引文件中对应的B+树每个节点都存储了a,b,c的值,而B+树上查询到对应叶子节点时,是按照我们建立联合索引的字段顺序来依次查询。即在节点中,选择下一个节点时,先判断a,再判断b,最后判断c,因为我们建立索引的顺序就是abc的顺序。所以当我们的SQL语句中,如果where条件语句中不包含a,则不会走任何索引。如:select * where and b=1 and c=1因为只当匹配了a字段之后,才能匹配到后面的字段。而下原创 2021-08-21 12:37:44 · 694 阅读 · 0 评论 -
MySQL索引使用优化
MySQL索引使用优化一、索引覆盖1、概念:索引覆盖指,不需要进行回表查询就可以查询到我们所要的结果,即不需要去查询主索引(聚集索引)。2、如何实现索引覆盖?常规的的方法是将被查询的字段,建立到联合索引中。例1:select id,name from user where name='小白说'; 能够命中name索引,索引叶子节点存储了主键id,通过name的索引树即可获取id和name,无需回表,符合索引覆盖,效率较高。例二:select id,name,sex from user原创 2021-08-21 01:44:53 · 82 阅读 · 0 评论 -
MySQL索引结构
MySQL索引结构MySQL官方对索引的定义是:索引(index)是帮助MySQL高效获取数据的一种数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这种数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。一般来说,索引本身很大,不可能完全存储在内存中,所以索引以索引文件的形式存储在磁盘中。索引的优势劣势:优势:1、提高数据检索的效率,降低数据库IO成本。2、通过索引对数据进行排序,降低数据排序的成本,降低CPU消耗。原创 2021-08-21 00:17:44 · 2063 阅读 · 0 评论