##
1.
2. ,
3.
4. IOIO
5.
##
1.
2.
3.
##
1.
2. WHERE
3.
4.
5.
6. where
7. InnoDB
8. ~~ NOT NULL ~~
[issue758](https://github.com/Snailclimb/JavaGuide/issues/758) **default nullwhere null ** not nullnullnull
MySQLAnd, in case youre wondering, allowing NULL values in the index really doesnt impact performance NULL https://juejin.im/post/5d5defc2518825591523a1db ,[MySQLIS NULLIS NOT NULL!=](https://juejin.im/post/5d5defc2518825591523a1db)
9. MySQL 5.7 sys chema_unused_indexes
10. limit offset
## Mysql
###
BTree
### BTree
## MyISAMInnoDBBTree
### MyISAM
B+TreedataB+TreeKey data data
### InnoDB
MyISAMB+TreedatakeyInnoDBdataMyISAMkey PSJava
##
###
InnoDB+
###
(username,age) sql
```sql
select username , age from user where username = 'Java' and age = 22
```
## 3
1. (SSDI/O
2. 1/0I/OGROUPBY
3.
1
##
>
> https://juejin.im/post/5b55b842f265da0f9e589e79
> Java3y
### MySQL
MySQL()


- ****
- ****
-
- ()
select * from user where indexname = 'xxx'sql
1. ****
2. ****
On
###
()

id8

**** O(logn)
B+B+
##
> Java
###
MySQLUsernamecity(name,city)
```
select * from user where name=xx and city=xx ;
select * from user where name=xx ; //
select * from user where city=xx ; //
```
`city= xx and name xx`
ORDER BY
###
name,city name
MySQL 5.7 sys `schema_redundant_indexes`
### Mysql
1.PRIMARY KEY
```
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
```
2.UNIQUE()
```
ALTER TABLE `table_name` ADD UNIQUE ( `column` )
```
3.INDEX()
```
ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
```
4.FULLTEXT()
```
ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
```
5.
```
ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
```
##
- Java
- MySQL_3
- https://juejin.im/post/5b55b842f265da0f9e589e79