
MySQL
文章平均质量分 89
努力的布布
花有重开日,人无再少年。
展开
-
MySql锁的分类和死锁的产生和预防
性能:操作类型:数据粒度:mysql通过该命令释放锁行锁:也称为行级锁,就是在数据行上对数据进行加锁和释放锁,典型特点是开销比较大,加锁速度慢,可能会出现死锁,锁定的力度最小,发生锁冲突的概率最小,并发度最高。在Innodb存储引擎中,有两种类型的表锁:共享锁和排他锁。共享锁只允许其他事务读,不允许其他事务写。排他锁只允许当前事务进行增删改查操作,不允许其他事务进行任何操作。注意:1.行锁要加在索引上,如果对费索引的字段设置条件进行更新,行锁可能会变为表锁2.Innodb的行锁是针对索引加锁,原创 2022-06-18 21:17:32 · 850 阅读 · 0 评论 -
MySql事务和隔离级别
事务的特性原子性:一个整体要么全部成功,要么全部失败;主要依靠的是undo log,可以进行日志回滚一致性:事务执行前后数据始终处于一致的状态;最终目标就是实现一致性隔离性:并发执行的事务之间互不干扰;锁和mvvc机制来保证;持久性:事务提交完成后数据会被持久化到数据库中并且不会被回滚;通过redo log来保证并发事务带来的问题脏写:对于同一行数据,一个事务对该行的的更新操作覆盖了其他事务对该行数据的更新操作;更新丢失的本质上是写操作的冲突,解决办法是让每个事务按照串行的方式执行,按照一定的顺原创 2022-05-29 20:37:11 · 154 阅读 · 0 评论 -
MySQL性能调优-(九)mysql的锁机制
1、MySQL锁的基本介绍 **锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY原创 2022-05-16 22:20:08 · 308 阅读 · 1 评论 -
MySQL性能调优-(八)服务器参数设置
generaldatadir=/var/lib/mysql数据文件存放的目录socket=/var/lib/mysql/mysql.sockmysql.socket表示server和client在同一台服务器,并且使用localhost进行连接,就会使用socket进行连接pid_file=/var/lib/mysql/mysql.pid存储mysql的pidport=3306mysql服务的端口号default_storage_engine=InnoDBmysql存储引擎skip-g原创 2022-05-15 23:52:22 · 672 阅读 · 0 评论 -
MySQL性能调优-(七)分区分表
分区表的应用场景1.表非常大以至于无法全部都放在内存中,或者只在表的最后部分有热点数据,其他均是历史数据2.分区表的数据更容易维护批量删除大量数据可以使用清除整个分区的方式对一个独立分区进行优化、检查、修复等操作3.分区表的数据可以分布在不同的物理设备上,从而高效地利用多个硬件设备4.可以使用分区表来避免某些特殊的瓶颈innodb的单个索引的互斥访问ext3文件系统的inode锁竞争5.可以备份和恢复独立的分区分区表的限制一个表最多只能有1024个分区,在5.7版本的时候可以原创 2022-05-07 20:43:30 · 713 阅读 · 0 评论 -
MySQL性能调优-(六)查询优化
查询优化在编写快速的查询之前,需要清楚一点,真正重要的是响应时间,而且要知道在整个SQL语句的执行过程中每个步骤都花费了多长时间,要知道哪些步骤是拖垮执行效率的关键步骤,想要做到这点,必须要知道查询的生命周期,然后进行优化,不同的应用场景有不同的优化方式,不要一概而论,具体情况具体分析。查询慢的原因网络CPUIO上下文切换系统调用生成统计信息锁等待时间 myisam分为共享读锁和独占写锁,只能锁表;Innodb分为共享锁和排他锁,可以锁表也可以锁行,锁的对象是索引。优化数据访问查原创 2022-05-06 21:54:05 · 700 阅读 · 0 评论 -
MySQL性能调优-(五)通过索引进行优化
通过索引进行优化索引的优点1、索引的优点:(1)减少服务器扫描的数据量(2)避免排序和临时表(3)将随机 IO 变成顺序 IO索引的用处1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引3、如果表具有多列索引,则优化器可以使用索引的任何最左前缀来查找行4、当有表连接的时候,从其他表检索行数据5、查找特定索引列的min或max值6、如果排序或分组时在可用索引的最左前缀上完成的,则对表进行排序和原创 2022-05-04 17:07:07 · 548 阅读 · 0 评论 -
MySQL性能调优-(四)索引数据结构
数据结构hash 表hash 表大家应该都比较熟,hash 表就是一个数组,然后在每一个数组的下面可以添加一个数据桶,以链表的方式进行实现。hash 表是有对应一个下标的,从0 开始进行排列,如果想要往 hash 表放数据的话,必须要经过散列算法,然后计算出对应的位置,将数据放到指定的位置。而散列算法最简单的就是进行取模运算。如果数组的长度是 8,那么在存储数据的时候,计算的下标位置就是 0-7,那么正好能定位到我们数组里面的某一个位置,然后如果不同的数据计算出来的下标值是一模一样的直接在数组下添加链原创 2022-05-02 21:27:52 · 1421 阅读 · 0 评论 -
MySQL性能调优-(三)执行计划Explain
MySQL性能调优系列原创 2022-05-01 23:47:15 · 280 阅读 · 0 评论 -
MySQL性能调优-(二)数据类型优化
MySQL性能调优系列原创 2022-05-01 15:46:28 · 298 阅读 · 0 评论 -
MySQL性能调优-(一)性能监控
MySql实战调优系列原创 2022-05-01 15:20:43 · 1448 阅读 · 0 评论