
美国数据可视化网站:-->link
线性查找时间复杂度:N,一个一个找,速度慢
二分查找时间复杂度:logN,拿出有序数列的中点位置,作为比较的对象,进行查找,每次找中点数
二叉查找树Binary Search Tree:时间复杂度:logN,经典二叉树数据结构,缺点:可能会退化成链表
平衡二叉树:AVL TREE,时间复杂度:logN,查找一样,增删改会通过旋转,维护树的平衡。
B树:
B+树:B树+链表,主流数据库算法。
#随机推荐,没有使用算法
select title ,description from `film` order by rand() limit 10;
#数据库备份,查询mysql到处路径
show variables like `%secure%`;
#使用into outfile将查询结果,到处到文件
select * into outfile `/var/lib/mysql-files/out_file_test `from Z;
#使用mysqldump备份
mysql逻辑备份工具,mysql server自带,输入备份SQL语句
SELECT SQL_NO_CACHE FROM `t`;
mysqldump -uroot -pxxxxx --databases d1--single-transaction >1.sql;
#再执行ll,查一下1.sql,cat看一下
##--single-transaction 在RR级别下进行,innoDB
##--lock-all-tables 使用FTWRL锁,所有表myisam
##--all-databases备份所有库
#mysqldump缺点:
1导出逻辑数据,速度慢,核心就是导出select * from xx;
2还原还需要执行sql,
优点:使用简单,热备。
##mysqldump,如何增量备份,不要全部备份
回答:做不到!!!不可以增量备份
解决方案:
binlog忠实记录了mysql数据变化。
mysqldump--》全量备份
binlog--〉增量备份
#增量备份
mysqldump -uroot -pxxxx --databases d1--single-transaction --flush-logs--master-data=2 >xxx.sql;
--flush-logs备份后切换binlog文件
--master-data=2:记录切换后binlog的文件名
>直接执行sql文件,即可还原
source test.sql;
#使用xtraBackup物理备份
直接备份innoDB底层数据文件,导出不需要转换,速度快。对数据库压力小。容易实现增量备份。
#ibbackup软件
mysql enterprise backup innoDB出品
性能优秀,
##XtraBackup--开源免费版
xtraBackup 8.0-->Mysql8.0
xtraBackup 2.4-->mysql 5.1,5.5,5.6,5.7
##Xtrabackup全量使用方法
innobackupex--user=root --password=xxxxx bakdir/
##如何防患未然

主从复制,实战
第一步上锁,
FLUSH TABLES WITH READ LOCK;
第二步:SHOW MASTER STATUS \G;
第三步:mysqldump -u root -p xxxx --all-databases --master-data >dbdump.sql
和金额相关的业务,主从数据库分离,如何让备库读到最新的数据,解决方案
#强制延时
seconds_behind_master=0