首页 > 数据库 >mysql 性能学习1

mysql 性能学习1

时间:2022-12-02 13:04:36浏览次数:34  
标签:log 性能 id 学习 索引 key mysql where key1


1 使用explain语句去查看分析结果,如
explain select * from test1 where id=1;
会出现:
id selecttype table type possible_keys key key_len ref rows extra各列

其中,type=const表示通过索引一次就找到了,key=primary的话,表示使用了主键
type=all,表示为全表扫描,key=null表示没用到索引;
假如在test1表中,结构如下:
id name

假如id为自动递增,name设置了索引,则explain后,会发现
type=ref,因为这时认为是多个匹配行,在联合查询中,一般为REF


2 MYSQL中的组合索引
假设表有id,key1,key2,key3,把三者形成一个组合索引,则
如:
where key1=....
where key1=1 and key2=2
where key1=3 and key3=3 and key2=2
根据最左原则,这些都是可以使用索引的哦

from test where key1=1 order by key3
用explain分析的话,只用到了normal_key索引,但只对where子句起作用,而后面的order by需要排序


3 使用慢查询分析:
在my.ini中:
long_query_time=1
log-slow-queries=d:\mysql5\logs\mysqlslow.log
把超过1秒的记录在慢查询日志中
可以用mysqlsla来分析之。也可以在mysqlreport中,有如
DMS 分别分析了select ,update,insert,delete,replace等所占的百份比

4 MYISAM和INNODB的锁定
myisam中,注意是表锁来的,比如在多个UPDATE操作后,再SELECT时,会发现SELECT操作被锁定了,必须等所有

UPDATE操作完毕后,再能SELECT
innodb的话则不同了,用的是行锁,不存在上面问题。
5 MYSQL的事务配置项
innodb_flush_log_at_trx_commit=1
表示事务提交时立即把事务日志写入磁盘,同时数据和索引也更新

innodb_flush_log_at_trx_commit=0
事务提交时,不立即把事务日志写入磁盘,每隔1秒写一次
innodb_flush_log_at_trx_commit=2
事务提交时,立即写入磁盘文件(这里只是写入到内核缓冲区,但不立即刷新到磁盘,而是每隔1秒刷新到磁盘,同

时更新数据和索引,

标签:log,性能,id,学习,索引,key,mysql,where,key1
From: https://blog.51cto.com/u_14230175/5906938

相关文章

  • Mysql 源码解读-执行器
    Mysql源码解读-执行器一条sql执行过程中,首先进行词法分析和语法分析,然后将由优化器进行判断,如何执行更有效率,生成执行计划,后面的任务就交给了执行器。在执行的过程中,执......
  • mysql docker安装mysql8
    目录mysqldocker安装mysql8安装命令验证mysqldocker安装mysql8mysql数据库想忽略大小写,如果原先已经有数据了,是无法直接实现的。需要先把数据导出,然后把数据删除改成忽......
  • MySQL的架构与历史1.5MySQL的存储引擎
    1.5MySQL的存储引擎1.5.1InnoDB存储引擎InnoDB是MySQL的默认事务型引,也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(short-lived)事务,短期事务大部......
  • cs231n学习笔记——Lecture 4 Backpropagation and Neural Networks
    该博客主要用于个人学习记录,部分内容参考自:【cs231n】详解神经网络中的反向传播、CS231n笔记三:神经网络之反向传播、超详细斯坦福CS231n课程笔记(第四课)——反向传播和神......
  • MYSQL BACKUP的SHELL相关语句
    #!/bin/bash###############Basicparameters##########################DAY=`date+%Y%m%d`Environment=$(/sbin/ifconfig|grep"inetaddr"|head-1|grep-v"127.0.......
  • 笔记: MYSQL BACKUP的SHELL相关语句
    #!/bin/bash ###############Basicparameters########################## DAY=`date+%Y%m%d` Environment=$(/sbin/ifconfig|grep"inetaddr"|head-1|grep-......
  • mysql中查询连接工作状态
    #!/bin/bashwhiletruedomysql-uroot-e'showprocesslist\G'|grepState:|uniq-c|sort-rnecho'---'sleep1Done如果观察到以下状态,则需......
  • 产品经理学习系列(1)笔记
    一万事万物都是产品,影响因素有:目的和目标、受众、外部环境(市场),方向和路径,成本、收益、风险、机会。二项目的过程:1 源起(充分了解内因和外因,提......
  • mysql中的zeroDateTimeBehavior=convertToNull
    Cannotconvertvalue'0000-00-0000:00:00'fromcolumn1toTIMESTAMP在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候......
  • cakephp学习3
    1数据库表的设计要根据cakephp的规范.比如表名要以小写+复数的形式,如books.如果是两个单词的话,要这样.author_name,用下划线分开.2每个表必须有主键id 3model的文件名......