
MySQL
文章平均质量分 84
夹毛局的程序员
这个作者很懒,什么都没留下…
展开
-
MySQL锁相关
SHOW VARIABLES LIKE ‘%isolation%’;MySQL锁在数据库中,除传统的计算资源(CPU RAM IO等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性 有效性也是数据库必须解决的问题.锁冲突也是影响数据库并发访问性能的重要因素锁分类读锁(共享锁) 针对同一份数据,多个读操作可以同时进行不会互相影响写锁(排他锁) 当前写操作没有完成之前,会阻塞其他写锁和读锁按粒度分 表锁 和 行锁表锁分析读锁 偏向MyISAM存储引擎,开销小,加锁快原创 2021-05-13 17:58:32 · 136 阅读 · 0 评论 -
MySQL性能分析show profile
Show Profileshow profile是MySQL提供用来分析SQL语句执行资源消耗情况,可以用于SQL调优的度量工作.使用步骤查看当前MySQL是否支持profilingSHOW VARIABLES LIKE '%profiling%'开启show profile功能SET profiling=ON;使用SHOW Profiles查看SHOW PROFILES;找到执行时间过长的SQL ID结合 show profile 命令查看当前SQL的各资原创 2021-05-13 17:57:35 · 184 阅读 · 0 评论 -
MySQL慢查询日志
MySQL慢查询日志MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中long_query_time默认值是10,运行超过10s的语句会被记录到慢查询日志中如何使用默认情况下,MySQL没有开启慢查询日志,需要我们手动开启. 如果不是调优需要的话,不建议开启该参数.因为慢查询日志或多或少会带来性能影响. 慢查询日志支持将日志记录到文件中开启慢查询日志SET GLOBA原创 2021-05-13 17:52:09 · 370 阅读 · 0 评论 -
MySQL索引优化案例
MySQL索引优化案例分析单表优化CREATE TABLE IF NOT EXISTS article( id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, author_id INT(10) UNSIGNED NOT NULL, category_id INT(10) UNSIGNED NOT NULL, views INT(10) UNSIGNED NOT NULL, comments INT(10) UNSIGNED NOT原创 2021-05-13 17:41:58 · 169 阅读 · 0 评论 -
MySQL优化策略
通常SQL优化流程记录MySQL慢SQL日志,观察一天生产慢SQL的情况,设置慢SQL的阈值explain + 慢SQL 分析show profile 查询SQL在MySQL服务器内部执行细节和生命周期SQL服务器的参数调优小表驱动大表SELECT * FROM A WHERE id IN (SELECT a_id FROM B);B表数据小于A表的数据时使用 IN 优于 exists主要在A表与B表之间关联的字段建立索引EXISTS关键字SELECT * FROM TABLE原创 2021-05-13 17:08:19 · 118 阅读 · 0 评论 -
MySQL性能分析explain
性能分析的前置知识MySQL query optimizer 查询优化器MySQL为优化SELECT查询语句定义了优化器,通过计算分析系统中收集的统计信息,为客户端请求查询提供MySQL认为的最优执行计划 (这里的优化是MySQL认为的最优检索方式,并不一定是DBA认为的最优解决方式,这部分是最耗时的工作)客户端向MySQL发送一条Query请求,命令解析器完成请求分类,区别出事SELECT请求转发给MySQL Query Optimizer,MySQL首先会对整条SQL进行优化 处理掉一些常量表达式原创 2021-05-13 16:46:15 · 272 阅读 · 1 评论 -
MySQL的索引失效
索引失效最左匹配原则,如果索引了多列,要遵守最左匹配原则.在查询时从索引的最左列开始并且 不跳过复合索引的中间列不要在索引上进行任何操作 (计算 函数 or 类型转换等),这些操作会导致索引失效变成全表扫描存储引擎不能使用索引中范围条件右边的列尽量使用覆盖索引 (索引列和查询字段一致) 减少 SELECT * 操作mysql在使用 != >< 的时候无法使用索引 会导致全表扫描IS NULL IS NOT NULL 也无法使用索引LIKE 以通配符开头的不会使用索引变成全表扫描原创 2021-05-13 16:10:59 · 143 阅读 · 0 评论 -
MySQL索引
索引是什么?MySQL官方对索引的定义: 索引Index是帮助MySQL高效获取数据的一种数据结构.本质上索引是一种数据结构目的在于提高查询效率,好比字典目录,所有索引需要进行全表扫描,在数据量大的场景下会导致查询效率非常慢. 索引是一个排好序的快速查询的数据结构MySQL默认的索引B+树,MySQL还有hash索引 全文索引等,大多数情况下我们用的最多的就是B+树索引索引的优劣势优势提高数据检索效率,降低数据库IO成本通过索引对数据进行排序,降低数据排序成本,降低CPU的消耗劣势索原创 2021-05-13 15:21:24 · 277 阅读 · 0 评论