SQL优化插入数据优化insert优化
批量插入(500-1000条)
手动提交事务
主键顺序插入
大批量插入数据,使用load命令插入
123456# 客户端连接时加上对应参数mysql --local-infile -utroot -p# 设置启用local_infile全局参数set global local_infile=1# 执行load命令加载数据到表结构中load data local infile '/root/test.csv' into table `tests` fields terminayed by ',' lines terminated by '\n';
主键优化数据组织方式
在InnoDB存储引擎中,表数据都是根据主键顺序组织存放的,这种存储方式的表成为==索引组织表==。
页分裂
页可以为空,页可以一半,也可以填充满,每个页包含了2-N行数据(如果一行数据过大,会行溢出),更具主键排列。
如果主键乱序插入的话,就会产生页分裂现象。当一个数据页满时,插一个新的数据,新数据会分配到新的页。
页 ...
SQL性能分析SQL执行频率通过show status可以查看服务器状态信息
12345678910111213141516mysql> show global status like 'COM_______';+---------------+-------+| Variable_name | Value |+---------------+-------+| Com_binlog | 0 || Com_commit | 0 || Com_delete | 0 || Com_import | 0 || Com_insert | 0 || Com_repair | 0 || Com_revoke | 0 || Com_select | 1 || Com_signal | 0 || Com_update | 0 || Com_xa_end | 0 |+---------------+-------+
慢查询日志 ...
字节跳动数据开发面试复盘Hive 数据仓库分层可以看我这篇文章Hive 数据仓库分层
爬楼梯问题经典的递归问题,也可以优化一下题目来源: LeetCode 70. 爬楼梯
递归解法1234567891011class Solution { public int climbStairs(int n) { if(n == 1){ return 1; }else if(n == 2){ return 2; }else{ return climbStairs(n - 1) + climbStairs(n - 2); } }}
递归优化算法用常规的递归去解决这个问题,但会带来一个问题,即超出时间限制因此,可以用 Map 去做一个缓存,类似于减枝的效果,可以显著降低递归带来的重复计算问题这里呢,有点像是动态规划,用一个缓存表去减少递归的计算量,由于我也不太会动态规划, ...