Mysql
mysql=笔记
ashes of time
这个作者很懒,什么都没留下…
展开
-
Mysql笔记
1.操作数据库 创建数据库 CREATE DATABASE if NOT EXISTS ykjcce; 使用数据库 USE ykjcce; 删除数据库 DROP DATABASE if EXISTS ykjcce; 查看所有数据库 SHOW DATABASES;原创 2021-04-21 12:00:13 · 64 阅读 · 0 评论 -
mysql主从复制
概念 复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行,从而使得从库和主库的数据保持同步。 mysql支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。 复制原理 集群搭建 1)master数据库修改my.cnf配置如下 #mysql服务ID,保证整个集群环境中唯一 server-id =1 #mysql binlog日志的存储路径和文件名 log-bin=/var/lib/mysql/my.原创 2021-05-11 13:09:44 · 70 阅读 · 0 评论 -
查看日志
查看错误日志 --先连接数据库 然后查看日志所在地方 show variables like 'log_error'; binlog日志 --先查看是否开启 show variables like 'log_'; 如果为ON则表明已经开启,如果为OFF则没有开启需要在配置文件my.cnf中添加如下配置 <!--配置开启binlog日志此处可以指定日志存放地点/home/logs/mysqlbin --> log_bin=mysqlbin <!--配置二进制日志的格式-..原创 2021-04-27 21:51:11 · 322 阅读 · 0 评论 -
mysql常用备份指令
mysql远程连接--指定ip和端口号注意端口号为大写P mysql -h 127.0.0.1 -P 3306 -u root -p root mysqladmin指令--查看帮助文档 mysqladmin -help --快速创建数据库 mysqladmin -uroot -proot create database ykjcce; mysqldump导出建表语句--导出表结构 mysqldump -uroot -proot ykjcce > /tempss/ykjcce.sql;.原创 2021-04-27 20:07:33 · 157 阅读 · 0 评论 -
其他优化方向
使用多表连接查询代替子查询 使用union 代替or 对于分页查询--Mysql在进行分页查询时越往后效率越低 select * from student limit 1000000,10 --1.在索引上完成排序分页操作,最后根据主键关联回原表查询所需要的其他列内容 select a.* from student a, (select sid FROM student LIMIT 1000000, 10) b where a.sid = b.sid --2.先利用主键查找出分页区间,然后在进行分.原创 2021-04-22 18:54:04 · 69 阅读 · 0 评论 -
group by 语句优化
因为经过分组的字段会默认排序,如果没有排序要求可以在分组后添加 ‘order by null’select score,count(1) from student GROUP BY score ORDER BY null 为分组字段添加索引原创 2021-04-22 17:58:49 · 67 阅读 · 0 评论 -
优化order by语句
mysql可以通过查看sql执行计划知道其排序方式有两种 using filesort 和 using index 第一种是通过对返回数据进行排序,也就是通常说的filesort排序,所有不是通过索引直接返回排序结果的排序都叫filesort排序 第二种通过有序索引顺序扫描直接返回有序数据。不需要额外排序,操作效率很高。 对于单字段排序 推荐查询字段都有对应索引。 多字段排序 要求排序字段要么都升序,要么都降序,且排序字段是创建了复合索引(并且排序字段是按照创建索引字段的顺序来的)..原创 2021-04-22 14:35:52 · 59 阅读 · 0 评论 -
优化以insert语句导入数据的方式
对于下面两种插入数据的方式推荐使用下面的插入方式效率更高(这种情况会缩减客户端与数据库连接次数,提高insert效率)insert into student(sno,sname,sage,ssex,tno) VALUES(10036,'ykjcs',18,'0','1002'); insert into student(sno,sname,sage,ssex,tno) VALUES(10037,'zkjo',25,'0','1003'); insert into student(sno,sname,sag.原创 2021-04-22 13:09:27 · 165 阅读 · 0 评论 -
以文件形式导入大批量数据
对于InnoDB类型的表 按主键顺序插入 因为InnoDB类型的表是安装主键顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入效率,如果InnoDB类型的表没有主键,那么系统会自动默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这点,来提高导入数据的效率。 关闭唯一性校验(当字段中有唯一性约束时) SET UNIQUE_CHECKS=0; SET UNIQUE_CHECKS=1;(导入数据结束后开启) 手动提交事务。再导入数据前关闭自动提交,结束后开.原创 2021-04-22 12:58:20 · 104 阅读 · 0 评论 -
索引的使用
最左前缀法则 如果是复合索引,要遵守最左前缀法则,指的是查询从索引的最左前列开始,并且不跳过索引中的列(可以看作是爬楼梯1楼楼梯必须在才能往上。)原创 2021-04-22 11:44:56 · 175 阅读 · 0 评论