mysql

好文

一千行总结

https://www.cnblogs.com/frankielf0921/p/5930743.html   

https://www.cnblogs.com/panwenbin-logs/p/8366940.html

https://www.cnblogs.com/f-ck-need-u/archive/2018/05/08/9010872.html   redo undo  binlog

https://www.cnblogs.com/jasontec/p/9601637.html      主从配置参考

添加单值索引,联合索引,强行使用索引优化  explain详解  system > const > eq_ref > ref > range > index > all

分库分表

mysql配置

mysql冷风博客

mysql 优化面试题

mysql整理

SQL语言共分为四大类:
数据查询语言DQL,
数据操纵语言DML,
数据定义语言DDL,
数据控制语言DCL。

开启慢查询记录的步骤:默认不打开

  打开 my.ini ,找到 [mysqld] 在其下面添加

  long_query_time = 2

  log-slow-queries = D:/mysql/logs/slow.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件

a) 如何查询mysql的慢查询时间

    Show variables like 'long_query_time';

b) 修改mysql 慢查询时间

    set long_query_time=2//如果查询时间超过2秒就算作是慢查询

通过explain分析低效率的SQL语句的执行情况
https://www.cnblogs.com/hujinshui/p/10028587.html

使用explain分析该dql语句:
EXPLAIN SELECT * FROM order_copy WHERE id=12345
会产生如下信息:
select_type:表示查询的类型。
1)SIMPLE
简单的SELECT语句(不包括UNION操作或子查询操作)

table:输出结果集的表
type:表示表的连接类型(system和const为佳)
system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all
possible_keys:表示查询时,可能使用的索引
key:表示实际使用的索引
key_len:索引字段的长度
rows:扫描的行数
Extra:执行情况的描述和说明

注意:要尽量避免让type的结果为all,extra的结果为:using filesort

小表驱动大表

说Sort_Buffer_Size 超过2KB的时候,就会使用mmap() 而不是 malloc() 来进行内存分配,导致效率降低。


主从同步原理——从库 从主机上同步数据的工作过程
Master,记录数据更改操作
— 启用binlog日志
— 设置binlog日志格式
— 设置server_id
Slave运行2个线程
— Slave_IO:复制master主机binlog日志文件里的SQL到本机的relay-log文件里
— Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作
https://blog.csdn.net/weixin_43184819/article/details/84000936

show status like ‘Connections’// 试图连接MySQL服务器的次数

show status like ‘Uptime’//服务器工作的时间(单位秒)

show status like ‘Slow_queries’//慢查询的次数 (默认是10秒中就当做是慢查询,如下图所示)


数据库引擎操作
修改默认的存储引擎
找到安装目录的my.ini 文件 修改

default-storage-engine=引擎名称

之后重启mysql服务生效

InnoDB类型的文件

*.frm :表结构定义文件,存放表的元数据,与存储引擎无关!MyISAM也有!

*.ibd : 数据文件,存放表中的数据!

MyISAM类型的文件

*.frm :表结构定义文件

*.MYD :数据文件

*.MYI :索引文件

原文地址:https://www.cnblogs.com/wxtrip/p/10588699.html