[TOC]
## 记录执行的所有sql
1. ``show variables where Variable_name="general_log";``查看日志是否打开;
若结果为``OFF``,则运行``set global general_log=on;``
2. ``show variables where Variable_name="general_log_file";``查看日志记录位置
3. 注:会记录所有sql,建议只在调试时打开,调试完成后关闭``set global general_log=off;``
## 格式化小数到指定位数
1. 输入`SELECT FORMAT(12562.6655,2);`输出`12562.67`
2. `CAST(AVG(avg_live) AS DECIMAL(10,2))`
## 存储过程
1. `DELIMITER $`将标准分隔符`;`改成`$`。与存储过程语法无关,可以将存储过程作为一个整体传递给服务器。结尾再加一个`DELIMITER`可将分隔符复原。
```
DELIMITER $
DELIMITER
```
2. 创建一个存储过程`CREATE PROCEDURE proc_initData()`。
在这个示例中,存储过程的名称为:`proc_initData`,并把括号放在存储过程的名字之后。
```
CREATE PROCEDURE proc_initData()
```
3. 存储过程的主体放在`BEGIN`和`END`之间
4. 在存储过程中定义一个变量`DECLARE dept VARCHAR(10);`
5. 给变量赋值`set dept="7700164";`
6. 调用存储过程`CALL proc_initData();`
7. 一个例子
![](https://box.kancloud.cn/ccc85275774b8f5d90bd2a8f5cdb43ad_1594x420.png)
## 视图
1. 创建视图
~~~
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
~~~
2. 修改视图
~~~
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
~~~
3. 删除视图
~~~
DROP VIEW view_name
~~~
4. 视图是查询结果集的可视化的表。不是固定的,会根据实际变化而变化。
## key_buffer_size
1. 作用:指定索引缓存区的大小,影响索引处理速度,特别是索引读的速度
2. 状态值比例`key_read/key_read_requests`反应设置是否合理。
``show status like 'key_read%'``获得状态值,至少1:100;1:10000更好
3. 该配置对MyISAM表起作用,即使不使用MyISAM表,内部的临时磁盘表也是MyISAM表,同样需要使用该值。
4. 对于1G内存的机器,如果不使用MyISAM表,推荐值是16M(8-64M)
## max_allowed_packet
1. 限制server接收的数据包大小
2. 查看当前配置``show VARIABLES like '%max_allowed_packet%'``;
3. 修改方法:修改配置文件或者执行sql语句``set global max_allowed_packet = 2*1024*1024*10``;
4.
/* 首先通过命令行登录mysql,命令为:*/
mysql -h localhost -u username -p
//接下来输入对应的passwprd,进入mysql操作界面
set global log_output=file;
set global general_log_file='file-path.log';
set global general_log=on;
set global general_log=off;
MySQL 错误 1366:1366 Incorrect integer value是数据库模式问题,修改配置文件为中
```sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"```
## 引擎
### InnoDB和MyISAM的区别是什么?
1. InnoDB支持事务,MyISAM不支持;
2. InnoDB数据存储在共享表空间,MyISAM数据存储在文件中;
3. InnoDB支持行级锁,MyISAM只支持表锁;
4. InnoDB支持崩溃后的恢复,MyISAM不支持;
5. InnoDB支持外键,MyISAM不支持;
6. InnoDB不支持全文索引,MyISAM支持全文索引;
## 存在则更新,不存在则新增
```
REPLACE INTO `antdbms_xykj`.`im_config` (`CFG_ID`, `CFG_NAME`, `CFG_DATA`, `CFG_TYPE`, `CFG_STATUS`, `CFG_DESC`) VALUES ('4', 'autoclear', '56', 'system', '1', '');
```
## windows下mysql做成服务
1. 进入mysql bin目录
2. `mysqld --install mysql`
3. `net start mysql`启动服务
4. `sc delete mysql`删除服务
### 发生系统错误 1067服务启动不了
1. 打开事件查看器,发现报错Can't create test file c:\xampp\mysql\data\DESKTOP-CJP462R.lower-test
2. 思考配置是否错误,但bin目录的配置文件配置正确
3. everything查找,发现有三个my.ini文件,删除bin目录以外的
## 优化技巧
1. 比较运算符能用 “=”就不用“<>”
2. 明知只有一条查询结果,那请使用 “LIMIT 1”
`limit 1`避免全局搜索,找到后就不向下查找了。
3. 使用UNION ALL 代替 UNION,如果结果集允许重复的话
4. 为获得相同结果集的多次执行,请保持SQL语句前后一致(查询缓存)
## centos安装mysql8
1. 点击[链接](https://dev.mysql.com/downloads/file/?id=484922)下载repo源,并上传到服务器
2. 安装repo文件`rpm -ivh mysql80-community-release-el7-3.noarch.rpm`
会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
3. 更新yum缓存
```
yum clean all
yum makecache
```
4. 安装`yum install mysql-community-server`
5. 开启mysql服务`systemctl start mysqld.service`
6. 查看root默认密码`cat /var/log/mysqld.log | grep password`
7. 加入开机启动项
```
systemctl enable mysqld.service
systemctl start mysqld.service
```
## 指定加密算法更新密码
`ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Qw123456.';`
## group_concat()
实现一个ID对应多个名称时,原本为多行数据,把名称合并成一行
## 不改变表结构的情况下对无符号进行数学计算
1. `CAST(Times AS SIGNED) AS Times `
- php
- 安全
- php7
- 特性
- 编译安装
- 源码整体框架
- 基本变量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制台
- eloquent
- tinker
- composer
- 加密解密
- 小知识点
- 数组
- string
- 代码简洁之道
- 编译
- 语法糖
- lumen
- smarty
- 错题集
- 算法及数据结构
- 线性表结构
- 插入排序
- 冒泡排序
- 数据库
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 备忘
- js
- nodejs
- vue
- css
- electron
- vue
- 语法糖
- colorui使用笔记
- 微信小程序
- 操作系统
- windows
- bat
- 快捷键
- linux
- sed
- 问题解决
- git
- docker
- docker-compose
- 正则表达式
- ps
- lua
- 协议相关
- 问题思索
- Golang
- 测试
- 读取和写入json配置文件
- 类
- 接口
- mod
- gin
- fyne
- 禅道二次开发
- 服务
- apache
- 漏洞配置
- http server优化
- nginx
- 安装
- 面试题库
- freeswitch