一、索引的使用
创建索引的情况:
1、主建自动创建唯一索引
2、频繁作为查询条件的字段应该要创建索引
3、查询中其他表与其他表关联的字段,外建关系建立索引
4、频繁更新字段,不适合创建索引
5、where条件里用不到的字段补充创建索引
6、查询中统计或者分组字段
不需要创建索引的情况:
1、表记录太少
2、经常增删的表
3、数据重复且分布平均的字段
二、SQL语句的优化
1、全局匹配我最爱(就是简历复合索引,能全部用上最好)
2、最佳左前缀原则
3、不要在索引上列上做任何计算
4、存储引擎不能使用索引中的范围条件为右边的列
5、尽量使用覆盖索引,减少select*
6、mysql在使用不等于的时候索引会失效
7、is null、is not null也无法使用索引
8、like以通配符开头,会变成全表扫描(通配符要放在右边(如:like ‘zhan%’))
9、字符串不加单引号会导致索引失效
10、少用or。用or来连接时,索引也会失效
三、数据库常见的瓶颈
CPU负担重:一般发生在数据装入内存和磁盘重读起数据的时候。
IO 负担重:装入数据远远大常见于内存容量时。
服务器的性能瓶颈
explain:计划执行
怎么玩:explain+SQL
四、数据库的分库分表场景优化
1、硬件优化
2、数据库调优、例如增加索引、优化慢查询
3、引入缓存、减轻数据库的压力
4、程序与数据库表优化,重构
5、读写分离或分表分库
五、redis持久化RDB和AOF
Redis 持久化:
提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF.
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照
AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。
六、Redis集群添加和删除节点(主和从)
(1)启动集群:因为集群创建一次就行,所以直接启动所有节点服务即可
(2)查看服务器的运行状态:ps -ef | grep redis
(3)登录其中一个节点,查看集群状态
(4)我们将新建两个服务,在之前搭建的集群中新增两个节点(一主一从)
步骤一:创建7007、7008文件夹,拷贝redis.conf文件到两个文件夹下,然后进行配置文件的修改
步骤二:启动7007和7008俩个服务并查看服务状态。
(5)先稍微看一下redis-trib脚本能怎么使用:
(6)新增一个主节点7007(Master)
查看集群节点状态: