
MySQL优化
文章平均质量分 75
在学习MySQL优化过程中的笔记
Lavender-csdn
这个作者很懒,什么都没留下…
展开
-
为什么建议InnoDB表必须建立主键,并且推荐使用整型的自增主键
推荐一个国外的数据结构在线演示网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.htmlUUID:32个16进制数字,全球唯一,本地生成,性能高,没有网络耗时,但是非常长,占用大量的存储空间,并且作为主键建立索引和基于索引查询的时候会存在性能问题,一般这种方式不采用。为什么InnoDB表必须建立主键InnoDB中采用的是聚簇索引,表数据文件本身就是按照B+Tree组织的一个索引结构文件,主键索引默认就是B+Tree,由.原创 2021-03-12 21:54:57 · 607 阅读 · 0 评论 -
数据库分库分表带来的问题
在对数据库中的数据进行拆分的时候,也会带来以下问题:事务问题; 跨表分页、排序、函数问题; 全局主键避重问题; 数据迁移、扩容问题。事务问题目前数据库能够实现本地事务,也就是在同一个数据库中,可以允许一组操作要么全都正确执行,要么都不执行,从而确保数据库的一致性。单从分区角度出发,实际上仍然是一张表,一个库中,它不会存在事务一致性的问题,但是会使得事务变得非常复杂。而单库分表和分库分表会涉及到分布式事务,目前数据库并不支持跨库事务,所以在这一块需要解决分布式事务可能带来的不一致性。分原创 2021-03-11 21:08:01 · 1475 阅读 · 0 评论 -
MySQL锁机制
锁的分类(两锁)从对数据操作的类型分:读/写锁读锁(共享锁):针对同一份数据,多个操作可以同时进行而不会互相影响写锁(排他锁):当前写操作没有完成前,它会阻断其他写锁和读锁从对数据操作的粒度分:表锁和行锁锁的分类(三锁)1、表锁(偏读):偏向MyISAM存储引擎,开销小,加锁快,无死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。手动增加表锁:lock table 表名字 read(write),表名字2 read(write),其他;查看哪些表被加上锁:show ope原创 2021-02-16 14:33:49 · 126 阅读 · 0 评论 -
MySQL优化-查询截取分析
查询截取分析: 查询优化 慢查询日志 批量数据脚本 Show profile 全局查询日志查询优化:查询优化:永远小表驱动大表Order by关键字排序优化: Order by子句,尽量使用Index方式排序,避免使用filesort方式排序。 MySQL支持二种方式的排序,FileSort和Index,Index效率高,它指MySQL扫描索引本身完成排序。FileSort方...原创 2021-02-16 14:23:47 · 166 阅读 · 0 评论 -
MySQL查询分析工具-Explain
MySQL常见瓶颈1、CPU在饱和的时候一般发生在数据装入内存或者从磁盘上读取数据的时候2、磁盘I/O瓶颈发生在装入数据远大于内存容量的时候服务器硬件的性能瓶颈:top、free、iostat和vmstat来查看系统的性能状态Explain查看执行计划,使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或者是表结构的性能瓶颈。查看的执行计划可以显示如下信息:语法格式:explain+SQL语句执行计划中原创 2021-02-16 14:10:48 · 495 阅读 · 0 评论 -
索引失效问题
如何避免索引失效尽量全值匹配; 最佳左前缀法则; 不要在索引上做任何操作(计算、函数、(自动或者手动)类型转换); 存储引擎不能使用索引中范围条件右边的列; 尽量使用覆盖索引(只访问索引的查询(索引列和查询列一直)),减少select *; MySQL在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描; is null,is not null也无法使用索引; like以通配符开头(‘%abc…’)MySQL索引也会失效变成全表扫描的操作; 字符串不加单引号索引也会原创 2021-02-16 13:54:58 · 227 阅读 · 0 评论 -
索引优化分析
为什么要有索引性能下降SQL慢、执行时间长、等待时间长:查询语句写的烂,索引失效(单值、复合),关联查询太多join(设计缺陷或者不得已的需求),服务器调优及各个参数设置(缓冲、线程数等)。常见通用的join查询:SQL顺序: 编写过程: select dinstinct ..from ..join ..on ..where ..group by ...having ..order by ..limit...原创 2021-02-16 13:40:59 · 180 阅读 · 0 评论 -
MySQL优化--MySQL架构
MySQL配置文件MySQL逻辑架构和其他数据库相比,MySQL有点与众不同,它的结构可以在多种不同场景中应用并且发挥良好作用,主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离,这种架构可以根据业务的需求和实际需求选择合适的存储引擎。分层架构:连接层,服务层,引擎层,存储层。MySQL存储引擎主要两类:MyISAM,InnoDBInnoDB是MySQL默认的事务型引擎,也是最重要和使用最广泛的存储引擎。1)数据和索引.原创 2021-02-16 13:02:47 · 114 阅读 · 0 评论