Scott's world.

Scott's world.

从来如此,便对吗

蓝桥杯 基础练习(下)
蓝桥杯 基础练习(下)BASIC-20 数的读法 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。  比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。  所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法:  十二亿三千四百五十六万七千零九  用汉语拼音表示为  shi er yi san qian si bai wu shi liu...
蓝桥杯 基础练习(上)
蓝桥杯 基础练习(上)BASIC-13 数列排序 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 输入格式   第一行为一个整数n。  第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式   输出一行,按从小到大的顺序输出排序后的数列。 样例输入 58 3 6 4 9 样例输出 3 4 6 8 9 分析直接使用Sort函数进行快排 代码1234567891011121314151617181920212223#include &...
machine-learning-1-线性回归与非线性回归
machine-learning-1-线性回归与非线性回归基于梯度下降法的一元线性回归应用回归Regression一元线性回归 回归分析(regression analysis)用来建立方程模拟两个或者多个变量之间如何关联 被预测的变量叫做:因变量(dependent variable), 输出(output) 被用来进行预测的变量叫做: 自变量(independent variable), 输入(input) 一元线性回归包含一个自变量和一个因变量 以上两个变量的关系用一条直线来模拟 如果包含两个以上的自变量,则称作多元回归分析(multiple regression) ℎ𝜃 𝑥...
MySQL-“饮鸩止渴”提高性能的方法笔记
MySQL-“饮鸩止渴”提高性能的方法笔记通常我们有时候会遇到在业务高峰期,生产环境的MySQL压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 所以今天的内容就是来聊聊一些可以快速解决性能问题但又有损的临时方案。 短连接风暴正常的短连接模式:连接到数据库后,执行很少的SQL语句就断开,下次需要的时候再重连。 如果使用的是短连接,在业务高峰期的时候,就可能出现连接数突然暴涨的情况。这就会出现短连接风暴的问题。 首先我们知道MySQL建立连接的过程,除了正常的网络连接三次握手外,还需要做登录权限判断和获得这个连接的数据读写权限。所以成本还是很高的。 在数据库压力较小时这些额外成本...
MySQL-加锁规则相关
MySQL-加锁规则相关今天我们会谈到一些加锁规则,因为间隙锁在RR级别下才有效,所以这篇文章下面的描述若没有特殊说明,默认是RR级别。 这个规则是自己总结所以有前提说明:MySQL后面的版本可能会改变加锁策略,所以这个规则只限于截止到现在的最新版本,即5.x系列<=5.7.24,8.0系列 <=8.0.13。 总结的加锁规则里面,包含了两个“原则”、两个“优化”和一个“bug”: 原则1:加锁的基本单位是next-key lock,next-key lock是前开后闭区间。 原则2:查找过程中访问到的对象才会加锁。 优化1:索引上的等值查询,给唯一索引加锁的时候,n...
MySQL-幻读与间隙锁问题笔记
MySQL-幻读与间隙锁问题笔记我们回到上一篇文章中提到的问题,下面的语句序列,是怎么加锁的,加的锁又是什么时候释放的呢? 123begin;select * from t where d=5 for update;commit; 我们在上篇也提到过答案,那就是这个语句会命中d=5这一行,对应的主键id=5,因此在此条语句执行完成后会给id=这一行会加一个写锁,而且由于两阶段协议,这个写锁会在commit语句时释放。 由于字段d没有索引,因此这条查询语句会做全表扫描,那么其他被扫描到的行,但是不满足条件的5行记录上会不会被加锁? 我们知道,InnoDB的默认事务隔离级别是可重复读,所...
MySQL-查一行相关性能问题笔记
MySQL-查一行相关性能问题笔记一般情况下,如果我们谈到查询性能优化的情况时,首先我们会想到一些复杂的语句并且想到查询需要返回大量的数据。但有些情况下,“查一行”也会执行得相当慢。 需要说明的是,如果MySQL数据库本身就有很大的压力,导致数据库服务器CPU占用率很高或ioutil(IO利用率)很高,这种情况下所有语句的执行都有可能变慢,不属于我们今天的讨论范围。 第一类:查询长时间不返回首先执行下面SQL语句 1mysql> select * from t where id=1; 假设,现在查询结果长时间不返回。 一般碰到这种情况,大概率是表t被锁住了。所以接下来分析原因的...
MySQL-MySQL-索引函数性能影响笔记
MySQL-索引函数性能影响笔记MySQL中有很多看上去逻辑相同,但性能相差巨大的SQL语句。 对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。 让我们从案例出发来探讨相似的问题。 首先我们应该知道对索引字段做函数操作,可能会破坏索引值的有序性,因此优化器就决定放弃走树搜索功能。 需要注意的是,优化器并不是放弃使用这个索引。 案例一:条件字段函数操作比如我们遇到有时候遇到类似于查询相关日期记录,如下面这两条sql语句 123456mysql> select count(*) from tradelog where month(t_modified)=7;mysql...
MySQL-正确显示随机行数笔记
MySQL-正确显示随机行数笔记我们应该经常能遇到需要随机获取表中几行记录的需求,所以今天我们就来讨论这一个需求应该如何优雅地解决。 假设我们建立一个只有两个字段(‘id’,’word’)的表,在表面插入10000行记录,接下来我们需要随机选择三行显示出来,有什么方法,存在什么问题以及如何改进呢? 内存临时表我们很容易想到使用order by rand() 1select word from words order by rand() limit 3; 通过explain命令可以知道这条语句需要临时表,并且需要在临时表上排序。 对于InnoDB表来说,执行全字段排序会减少磁盘访问,因此...
MySQL-orderby笔记
MySQL-orderby笔记在日常开发中我们经常会使用到order by这一字段,即根据指定的字段排序来显示结果。 以我们前面举例用过的市民表为例,假设查询某一个城市的所有人名字并根据姓名排序返回前1000个人的姓名和年龄。 我们很容易会想到下面的这一条SQL语句: 1select city,name,age from t where city='杭州' order by name limit 1000 ; 今天我们就来了解关于这一个语句是怎么执行的,以及有什么参数会影响执行的行为。 全字段排序为了避免全表扫描,我们需要在city字段加上索引,然后我们用expla...
avatar
Scott
L'enfer, c'est les autres
FRIENDS