一,Mysql在Linux的安装
1.先看有木有安装:rpm -qa | grep mysql
2.安装启动服务:service mysql start
3.建立账户:mysqladmin -u root password XXX
4.卸载:rpm -e XXX 和 删除 /var/lib/mysql
二,使用设置
1.字符集:
默认Latin1,自定义配置文件:mv /usr/share/mysq/my-huge.cnf /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
2.大小写敏感:
[mysqld] lower_case_table_names = 1
3.sql_mode:
查看:select @@sql_mode;
配置:[mysqld] sql_mode=ONLY_FULL_GROUP_BY等
4.授权:
grant all privileges on *.* to XXX@'%' identified by 'XXX';
grant all privileges on *.* to XXX@'本地ip' identified by 'XXX';
三 ,Mysql架构图
四层:连接层,服务层,引擎层,存储层
MyiSAM :不支持外键,事务,表锁,缓存索引,适合查
INNODB:支持外键,事务,行锁,高并发操作,缓存索引和数据。
四,主从复制
1.确保主机和从机都开启了二进制日志
2.在主机上授权从机
3.在主机执行show master status查看主机的binlog日志信息
4.配置从机
5.启动从机
五,索引
1.索引是排好序的快速查找数据结构,是一个文件,存储在磁盘。mysql使用B+tree实现索引。
2.聚簇索引:索引的顺序和数据实际顺序一致;有主键索引,单值索引,复合索引,唯一索引
3.优缺点:优点:①数据量大,帮助快速查找数据;②排序直接从索引获取顺序
缺点:①索引占内存,对内存要求高;②频繁增删改不建索引;③数据量少不需要
六,Explain
type;rows;extra;
七,优化
1.表关联,过滤,group by,order by建索引:全值匹配,复合索引,最左前缀,无计算,无范围,不写*,模糊%不写左,or变union,用is null
2.多表关联:被驱动表建索引;用小表位驱动表;
3.子查询优化:使用left join where XXX is null
4.排序和分组:无过滤(where/limit),不排序;顺序,方向得一致,group by有过滤。
5.选择过滤性强得字段建立索引。
ONLY_FULL_GROUP_BY |