摘要: MySQL只访问索引的查询叫覆盖索引,即只需访问索引,不需访问数据行,就是不需要回表查询,减少一次读取数据行的io操作,由于二级索引在叶子节点上保存了行的主键值,所以如果二级主键能够覆盖查询,则可以避免根据主键值在主键索引(也叫聚簇索引)中对索引树进行的二次查询来读取数据行,而且覆盖索引必须存储索引 阅读全文
posted @ 2020-05-10 12:16 ppjj 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一般MySQL使用如下三种方式应用where条件,从好到坏依次:1在索引中使用where条件过滤不匹配的行,在存储引擎层完成,2使用索引覆盖扫码(在extra列出现using index)来返回记录,直径过滤不需要的记录并返回命中的结果,在MySQL服务器层完成,但是无需再回表查询,3从数据表中返回 阅读全文
posted @ 2020-05-10 12:15 ppjj 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 查询缓存,MySQL判断缓存是否命中的方法很简单:缓存存放在一个引用表中,通过哈希值引用,哈希值包含如下因素:查询本身,当前要查询的数据库,客户端协议版本等,MySQL不会解析,格式化或者参数化查询,而是直径使用SQL语句或客户端发送过来的原始信息,任何字符上的不同,空格,注释都会导致缓存不命中。查 阅读全文
posted @ 2020-05-10 12:13 ppjj 阅读(145) 评论(0) 推荐(0) 编辑
摘要: MySQL实现分区表方式是对底层表的封装,意味着索引按照分区的子表定义,没有全局索引,通过partition by子句定义每个分区存放的数据,使用场景:1表非常大,无法全部房子内存中,或者只在表的部分有热点数据,其他是历史数据,2分区表容易维护,可以删除某个分区,3分区表可以部署在不同的物理设备上, 阅读全文
posted @ 2020-05-10 12:11 ppjj 阅读(215) 评论(0) 推荐(0) 编辑
摘要: MySQL服务器配置,innodb_buffer_pool_size缓冲池,设置为服务器内存的75%-80%,innodb_log_buffer_size设置日子文件大小,如果太小影响写操作,如果太大影响数据恢复,innodb_log_buffer_size日子缓冲区大小,一般不需要太大,16M以内 阅读全文
posted @ 2020-05-10 12:09 ppjj 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 网上写MySQL架构的文章比较多,写InnoDB架构的文章比较少,今天简单说说InnoDB架构。 画外音:一分钟,一幅图,秒懂。 作者:58沈剑 MySQL简要架构是怎么样的? MySQL整体分为三层: (1)客户端,是各种编程语言的connector; (2)MySQL服务,内部包含各种组件,实现 阅读全文
posted @ 2020-05-10 12:04 ppjj 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 可能你从未看到过这样的一篇集中火力式的把mysql参数列了这么全的文章,很有兴曾参与过超3万并发的18~19年的数轮520、618、双11、双12保卫战。因此这一篇是汇集了最精华和实战的内容把mysql所有的参数列在这边供大家参考。并且以(64c cpu,128gb内存)的mysql cpu和内存来 阅读全文
posted @ 2020-05-10 11:45 ppjj 阅读(1585) 评论(0) 推荐(1) 编辑
摘要: servlet3.0相对于servlet2.5最大变化是增加了注解annotation,但是说实话,对servlet 3动态加载servlet的机制有些失望,本来期望着可以在运行时完成对servlet的注册和销毁,但现状是,只能在webapp启动在初始化时进行完成注册,可能是为了安全考虑吧.在Ser 阅读全文
posted @ 2020-05-10 11:39 ppjj 阅读(641) 评论(0) 推荐(0) 编辑
摘要: HTML:使用协商缓存。CSS&JS&图片:使用强缓存,文件命名带上hash值,使用chunkhash或contenthash,不使用hash。以nodejs为例,如果需要浏览器强缓存,我们可以这样设置:res.setHeader('Cache-Control', 'public, max-age= 阅读全文
posted @ 2020-05-10 11:30 ppjj 阅读(164) 评论(0) 推荐(0) 编辑
摘要: C用户已经登录信任网站A,并收到了来自服务器的cookie,C用户在没有退出网站A的情况下,点击了危险网站B,B网站要求C用户访问信任网站A,由于浏览器会自动带上用户之前的cookie,所以信任网站a不知道请求来自用户C还是危险网站B,就处理了请求,这样危险网站B模拟了C用户的操作,这叫CSRF攻击 阅读全文
posted @ 2020-05-10 11:18 ppjj 阅读(173) 评论(0) 推荐(0) 编辑
摘要: vue.js在命令中使用--inline --hot进行热更新配置,需要下载vue-hot-reload-api组件 也可以试试: 使用spring-boot-devtools组件进行热部署,shift+Ctrl+alt+/打开maintenance,选择registry,选择compile.aut 阅读全文
posted @ 2020-05-10 11:09 ppjj 阅读(7555) 评论(0) 推荐(0) 编辑
摘要: Axios 响应拦截器是这样写的: axios.interceptors.response.use(res => { // 对响应数据做些什么 return response }, err => { // 对响应错误做些什么 if(err.response.status == 401){ //使用i 阅读全文
posted @ 2020-05-10 11:07 ppjj 阅读(1220) 评论(0) 推荐(0) 编辑
摘要: innodb以前不支持高并发,在高并发下就是悲剧,全部卡在mutex(缓冲池mutex)上,现在通过线程调度器控制线程怎么进入内核访问数据,参数为innodb_thread_concurrency,它有计算公式:CPU数量*磁盘数量*2。 如果无法进入内核会休眠innodb_thread_sleep 阅读全文
posted @ 2020-05-10 10:45 ppjj 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 如果查询在from子句中包含子查询,MySQL会执行子查询,将结果放在一个临时表中,然后完成外层查询的优化,它必须在外层查询优化前处理;所有类似的子查询,explain也必须这样做,意味着如果子查询开销较大,或使用临时表,服务器开销会比较大。这时候可以使用join连接查询代替子查询。 explain 阅读全文
posted @ 2020-05-10 10:44 ppjj 阅读(267) 评论(0) 推荐(0) 编辑
摘要: show profiles查看所有查询执行时间,通过show profile for query ID查看具体某个查询执行时间,一般耗费在sending data上面。timestamp只使用datetime一般的存储。可以用bigint代替decimal,这样避免浮点存储计算不精确和decimal 阅读全文
posted @ 2020-05-10 10:43 ppjj 阅读(235) 评论(0) 推荐(0) 编辑