[TOC]
## 記錄執(zhí)行的所有sql
1. ``show variables where Variable_name="general_log";``查看日志是否打開;
若結(jié)果為``OFF``,則運(yùn)行``set global general_log=on;``
2. ``show variables where Variable_name="general_log_file";``查看日志記錄位置
3. 注:會記錄所有sql,建議只在調(diào)試時(shí)打開,調(diào)試完成后關(guān)閉``set global general_log=off;``
## 格式化小數(shù)到指定位數(shù)
1. 輸入`SELECT FORMAT(12562.6655,2);`輸出`12562.67`
2. `CAST(AVG(avg_live)?AS?DECIMAL(10,2))`
## 存儲過程
1. `DELIMITER $`將標(biāo)準(zhǔn)分隔符`;`改成`$`。與存儲過程語法無關(guān),可以將存儲過程作為一個(gè)整體傳遞給服務(wù)器。結(jié)尾再加一個(gè)`DELIMITER`可將分隔符復(fù)原。
```
DELIMITER $
DELIMITER
```
2. 創(chuàng)建一個(gè)存儲過程`CREATE PROCEDURE proc_initData()`。
在這個(gè)示例中,存儲過程的名稱為:`proc_initData`,并把括號放在存儲過程的名字之后。
```
CREATE PROCEDURE proc_initData()
```
3. 存儲過程的主體放在`BEGIN`和`END`之間
4. 在存儲過程中定義一個(gè)變量`DECLARE dept VARCHAR(10);`
5. 給變量賦值`set dept="7700164";`
6. 調(diào)用存儲過程`CALL proc_initData();`
7. 一個(gè)例子

## 視圖
1. 創(chuàng)建視圖
~~~
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. 視圖是查詢結(jié)果集的可視化的表。不是固定的,會根據(jù)實(shí)際變化而變化。
## key_buffer_size
1. 作用:指定索引緩存區(qū)的大小,影響索引處理速度,特別是索引讀的速度
2. 狀態(tài)值比例`key_read/key_read_requests`反應(yīng)設(shè)置是否合理。
``show status like 'key_read%'``獲得狀態(tài)值,至少1:100;1:10000更好
3. 該配置對MyISAM表起作用,即使不使用MyISAM表,內(nèi)部的臨時(shí)磁盤表也是MyISAM表,同樣需要使用該值。
4. 對于1G內(nèi)存的機(jī)器,如果不使用MyISAM表,推薦值是16M(8-64M)
## max_allowed_packet
1. 限制server接收的數(shù)據(jù)包大小
2. 查看當(dāng)前配置``show VARIABLES like '%max_allowed_packet%'``;
3. 修改方法:修改配置文件或者執(zhí)行sql語句``set global max_allowed_packet = 2*1024*1024*10``;
4.
/* 首先通過命令行登錄mysql,命令為:*/
mysql -h localhost -u username -p
//接下來輸入對應(yīng)的passwprd,進(jìn)入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 錯(cuò)誤 1366:1366 Incorrect integer value是數(shù)據(jù)庫模式問題,修改配置文件為中
```sql_mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"```
## 引擎
### InnoDB和MyISAM的區(qū)別是什么?
1. InnoDB支持事務(wù),MyISAM不支持;
2. InnoDB數(shù)據(jù)存儲在共享表空間,MyISAM數(shù)據(jù)存儲在文件中;
3. InnoDB支持行級鎖,MyISAM只支持表鎖;
4. InnoDB支持崩潰后的恢復(fù),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做成服務(wù)
1. 進(jìn)入mysql bin目錄
2. `mysqld --install mysql`
3. `net start mysql`啟動服務(wù)
4. `sc delete mysql`刪除服務(wù)
### 發(fā)生系統(tǒng)錯(cuò)誤 1067服務(wù)啟動不了
1. 打開事件查看器,發(fā)現(xiàn)報(bào)錯(cuò)Can't create test file c:\xampp\mysql\data\DESKTOP-CJP462R.lower-test
2. 思考配置是否錯(cuò)誤,但bin目錄的配置文件配置正確
3. everything查找,發(fā)現(xiàn)有三個(gè)my.ini文件,刪除bin目錄以外的
## 優(yōu)化技巧
1. 比較運(yùn)算符能用 “=”就不用“<>”
2. 明知只有一條查詢結(jié)果,那請使用 “LIMIT 1”
`limit 1`避免全局搜索,找到后就不向下查找了。
3. 使用UNION ALL 代替 UNION,如果結(jié)果集允許重復(fù)的話
4. 為獲得相同結(jié)果集的多次執(zhí)行,請保持SQL語句前后一致(查詢緩存)
## centos安裝mysql8
1. 點(diǎn)擊[鏈接](https://dev.mysql.com/downloads/file/?id=484922)下載repo源,并上傳到服務(wù)器
2. 安裝repo文件`rpm -ivh mysql80-community-release-el7-3.noarch.rpm`
會在/etc/yum.repos.d/目錄下生成兩個(gè)repo文件mysql-community.repo?mysql-community-source.repo
3. 更新yum緩存
```
yum clean all
yum makecache
```
4. 安裝`yum install mysql-community-server`
5. 開啟mysql服務(wù)`systemctl start mysqld.service`
6. 查看root默認(rèn)密碼`cat /var/log/mysqld.log | grep password`
7. 加入開機(jī)啟動項(xiàng)
```
systemctl enable mysqld.service
systemctl start mysqld.service
```
## 指定加密算法更新密碼
`ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Qw123456.';`
## group_concat()
實(shí)現(xiàn)一個(gè)ID對應(yīng)多個(gè)名稱時(shí),原本為多行數(shù)據(jù),把名稱合并成一行
## 不改變表結(jié)構(gòu)的情況下對無符號進(jìn)行數(shù)學(xué)計(jì)算
1. `CAST(Times AS SIGNED) AS Times `
- php
- 安全
- php7
- 特性
- 編譯安裝
- 源碼整體框架
- 基本變量
- thinkphp3.2.3
- thinkphp5.0
- thinkphp6.0
- laravel
- 配置
- 路由
- artisan控制臺
- eloquent
- tinker
- composer
- 加密解密
- 小知識點(diǎn)
- 數(shù)組
- string
- 代碼簡潔之道
- 編譯
- 語法糖
- lumen
- smarty
- 錯(cuò)題集
- 算法及數(shù)據(jù)結(jié)構(gòu)
- 線性表結(jié)構(gòu)
- 插入排序
- 冒泡排序
- 數(shù)據(jù)庫
- mysql
- oracle
- PostgreSQL
- redis
- sqlserver
- 前端
- 備忘
- js
- nodejs
- vue
- css
- electron
- vue
- 語法糖
- colorui使用筆記
- 微信小程序
- 操作系統(tǒng)
- windows
- bat
- 快捷鍵
- linux
- sed
- 問題解決
- git
- docker
- docker-compose
- 正則表達(dá)式
- ps
- lua
- 協(xié)議相關(guān)
- 問題思索
- Golang
- 測試
- 讀取和寫入json配置文件
- 類
- 接口
- mod
- gin
- fyne
- 禪道二次開發(fā)
- 服務(wù)
- apache
- 漏洞配置
- http server優(yōu)化
- nginx
- 安裝
- 面試題庫
- freeswitch
