开机自动启动
chkconfig mysql on
关闭开机自动启动
chkconfig mysql off
检查开机自动启动
ntsysv
- 代表开机自动启动
登陆操作
mysql -u 用户名 -p 按提示输入密码
服务层注意:有时导致我们查询的sql与预想结果不一致,其实就是服务增sql优化器对我们执行的sql进行了优化,例如:一个表组合索引 a b c 三个字段,组合索引需要满足最左原则,预想如下sql是不会走索引的,实际可能会走索引。原因就是sql优化器对我们的语句进行了优化
select a,b,c from table where c =1 and b=1 and a=1
InnoDB(mysql 默认) | MyISAM | |
---|---|---|
优先级 | 事物优先 | 性能优先 |
优势 | 适合高并发操作 | 查询效率高 |
锁 | 行所 | 表锁 |
查询数据库支持的引擎,DEFAULT默认的,yes支持的,不支持的
SHOW ENGINES;
行模式";" 列模式“\G”,小写g不生效
查看当前的引擎
show variables like"%storage_engine%";
指定表引擎 MYISAM
CREATE TABLE `test`.`table1` ( `id` int(10) NOT NULL AUTO_INCREMENT, `name` varchar(255) NULL, PRIMARY KEY (`id`) ) ENGINE = MEMORY;
sql优化其实主要就是优化索引
索引(index):是帮助mysql高效获取数据的数据结构,索引是数据结构(树:B数(默认),hash树…)
- 相当于书的目录
- B树:小的放左,大的放右
原因:
select … from …join…on…where. …group by …having …order by… limit…
from…on… join…where…group by …having …select …order by …limit …
B树一般指B+tree,数据全部存放在叶节点上
B+树中查询任意数据的次数n次(B+树的高度)
三层B树大约可以放上百万条数据
注意:如果一个字段是 primary key,则该 字段默认就是主键索引
不可以为null,不能重复
一个表可以有多个单值索引
创建索引方式一
create 索引类型 索引名 on 表名(字段);
创建索引方式二
alter table 表名 add index 索引名 (字段1);
不能重复,可以为null
创建索引方式一
create unique index 索引名 on 表名(字段1);
创建索引方式二
alter table 表名 add unique index 索引名 (字段1);
多个列构成的索引,例如,索引(name,age),复合索引并不是必须同时用,而是满足使用最左原则即可 ,使用时不能跨列
创建索引方式一
create index 索引名 on 表名(字段1,字段2);
创建索引方式二
alter table 表名 add index 索引名 (字段1,字段2);
drop index 索引名 on 表名;
show index from 表名;