[](#)JavaJava
- [](#)
- [](#)
- [](#)
- [](#)
- [MySQL?](#mysql)
- [](#)
- [](#)
- [MyISAMInnoDB](#myisaminnodb)
- [](#)
- [](#)
- [](#)
- [?](#)
- [(ACID)](#acid)
- [?](#)
- [?MySQL?](#mysql)
- [InnoDB](#innodb)
- [](#)
- [1. ](#1-)
- [2. /](#2-)
- [3. ](#3-)
- [4. ](#4-)
- [SQLMySQL](#sqlmysql)
- [MySQL](#mysql)
- [SQL](#sql)
##
- SQL2
- MySQL : 3 ()
##
- [SQL Tutorial](https://www.w3schools.com/sql/default.asp) SQL,[SQL Tutorial](https://www.w3school.com.cn/sql/index.asp)SQL,[SQL](https://www.w3schools.com/sql/exercise.asp)
- [Github-MySQLMySQL tutorial book](https://github.com/jaywcjlove/mysql-tutorial) MySQLMySQL
- [](https://dev.mysql.com/doc/refman/5.7/)
- [MySQL ](http://www.runoob.com/MySQL/MySQL-tutorial.html)
##
- [5mysql](https://github.com/kakuilan/china_area_mysql)
##
**** [MySQL-](https://www.imooc.com/learn/122)
**MySQL** [MySQL](https://www.imooc.com/learn/398)[MySQL](https://www.imooc.com/learn/427)[MySQL](https://www.imooc.com/learn/449)
**MySQL5.7** [MySQL5.7](https://www.imooc.com/learn/533)[MySQL](https://www.imooc.com/learn/194)
[MySQLPXC](https://www.imooc.com/learn/993)[MyCAT](https://www.imooc.com/learn/951)
##
### MySQL?
MySQL Java MySQL MySQLMySQL GPL(General Public License) MySQL**3306**
###
####
**MySQL**
```sql
mysql> show engines;
```

MySQL InnoDB,5.7 InnoDB InnoDB
**MySQL**
```sql
mysql> show variables like '%storage_engine%';
```
****
```sql
show table status like "table_name" ;
```

#### MyISAMInnoDB
MyISAMMySQL5.5MyISAM5.5MySQLInnoDBMySQL 5.5InnoDB
InnoDB MyISAM MyISAM
****
1. **** : MyISAM (table-level locking)InnoDB (row-level locking),
2. ** MyISAM** ,InnoDB**InnoDB** (commit)(rollback)(crash recovery capabilities)(transaction-safe (ACID compliant))
3. **** MyISAMInnoDB
4. **MVCC** InnoDB , MVCC;MVCC `READ COMMITTED` `REPEATABLE READ` ;MVCC (optimistic) (pessimistic);MVCC[MySQL-InnoDB-MVCC](https://segmentfault.com/a/1190000012650596)
5. ......
MySQL:
> MyISAMInnoDBInnoDBMyISAM
InnoDB MyISAM
###
MySQL
MySQL PSJava
[MySQL](https://www.cnblogs.com/geaozhang/p/6724393.html#MySQLyuzifuji)
###
MySQL**BTree** **** BTree
MySQLBTreeBB+Tree
- **MyISAM:** B+TreedataB+TreeKey data data
- **InnoDB:** MyISAMB+TreedatakeyInnoDBdataMyISAM**key** **** PSJava
**MySQL**
###
> MySQL 8.0
my.cnfMySQL
```properties
query_cache_type=1
query_cache_size=600000
```
MySQL
```properties
set global query_cache_type=1;
set global query_cache_size=600000;
```
****MySQL
MySQL
**** MB**sql_cachesql_no_cache**
```sql
select sql_no_cache count(*) from usr;
```
### ?
****
100010001000
### (ACID)

1. **Atomicity**
2. **Consistency**
3. **Isolation**
4. **Durability**
### ?
- **Dirty read:**
- **Lost to modify:** 1A=202A=201A=A-12A=A-1A=191
- **Unrepeatableread:**
- **Phantom read:** T1T2T1
****
### ?MySQL?
**SQL **
- **READ-UNCOMMITTED()** ****
- **READ-COMMITTED()** ****
- **REPEATABLE-READ()** ****
- **SERIALIZABLE()** ACID****
------
| | | | |
| :--------------: | :--: | :--------: | :----: |
| READ-UNCOMMITTED | | | |
| READ-COMMITTED | | | |
| REPEATABLE-READ | | | |
| SERIALIZABLE | | | |
MySQL InnoDB **REPEATABLE-READ**`SELECT @@tx_isolation;`MySQL 8.0 `SELECT @@transaction_isolation;`
```sql
mysql> SELECT @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| REPEATABLE-READ |
+-----------------+
```
SQL InnoDB **REPEATABLE-READ**
Next-Key Lock ( SQL Server)
InnoDB **REPEATABLE-READ**
SQL **SERIALIZABLE()** **READ-COMMITTED()** InnoDB **REPEAaTABLE-READ**
InnoDB **** **SERIALIZABLE()**
### InnoDB
**MyISAMInnoDB**
- MyISAM(table-level locking)
- InnoDB(row-level locking),
****
- **** MySQL **** MyISAM InnoDB
- **** MySQL ****
MySQL[https://blog.csdn.net/qq_34337272/article/details/80611486](https://blog.csdn.net/qq_34337272/article/details/80611486)
**InnoDB**
- Record lock
- Gap lock
- Next-key lockrecord+gap
****
1. innodbnext-key lock
2. Next-locking keyingPhantom Problem
3. next-key lockrecord key
4. Gap
5. gaprecord lock A. RC B. innodb_locks_unsafe_for_binlog1
###
MySQLCRUD
#### 1.
#### 2. /
#### 3.
****
****

- **** BlockI/O
- **** JoinJoin
#### 4.
** **
200

MySQL ****
**** **** JoinJava **** I/O
****
- **** **jarJDBC** **Sharding-JDBC** TDDL
- **** **** **Mycat** 360AtlasDDB
MySQL: [https://segmentfault.com/a/1190000006158186](https://segmentfault.com/a/1190000006158186)
### ??
javajdbcredisjava[](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485679&idx=1&sn=57dbca8c9ad49e1f3968ecff04a4f735&chksm=cea24724f9d5ce3212292fac291234a760c99c0960b5430d714269efe33554730b5f71208582&token=1141994790&lang=zh_CN#rd)
socket ****
### ,id
1 id
id
- **UUID**
- ** id** : ID id
- ** redis id :**
- **Twittersnowflake** Github https://github.com/twitter-archive/snowflake
- **[Leaf](https://tech.meituan.com/2017/04/21/mt-leaf.html)ID** Leaf IDZookeeperhttps://tech.meituan.com/2017/04/21/mt-leaf.html
- ......
### SQLMySQL
[SQLMySQL]()
### MySQL
[MySQL]()
### SQL
[SQL---](https://mp.weixin.qq.com/s?__biz=Mzg2OTA0Njk0OA==&mid=2247485185&idx=1&sn=66ef08b4ab6af5757792223a83fc0d45&chksm=cea248caf9d5c1dc72ec8a281ec16aa3ec3e8066dbb252e27362438a26c33fbe842b0e0adf47&token=79317275&lang=zh_CN#rd)
##
**Java:** JavaV2.0 PDF [](#) **"Java"**
**Java:** Java **1**
