子查询优化
<h1 id="j6v6E">子查询优化</h1> 子查询是 MySQL 的一项重要的功能,可以帮助我们通过一个 SQL 语句实现比较复杂的查询。但是,子 查询的执行效率不高。原因 : ①执行子查询时,MySQL需要为内层查询语句的查询结果 <font style="color:#DF2A3F;">
<h1 id="j6v6E">子查询优化</h1> 子查询是 MySQL 的一项重要的功能,可以帮助我们通过一个 SQL 语句实现比较复杂的查询。但是,子 查询的执行效率不高。原因 : ①执行子查询时,MySQL需要为内层查询语句的查询结果 <font style="color:#DF2A3F;">
索引:索引相当于书签,为了帮助MySQl高效的查询数据的数据结构,使用的B+树。 使用索引可以降低I/O使用率,降低cpu的使用率,提高查询效率 但并不是所有的场景都适合索引,如过数据很少,或者字段经常修改,以及字段不经常使用都没必要使用索引,因为索引也是会占用资源的。并且它会降低增删改的效率,因为
什么是数据库缓存 MySQL等一些常见的关系型数据库的数据都存储在磁盘当中,在高并发场景下,业务应用对MySQL产生的增、删、改、查的操作造成巨大的I/O开销和查询压力,这无疑对数据库和服务器都是一种巨大的压力,为了解决此类问题,缓存数据的概念应运而生。 极大地解决数据库服务器压力 提高应用数据的响
减少HTTP请求次数 想能黄金法则 只有10%-20%的最终用户响应时间花在接受请求的HTML文档上,剩下80%-90%时间花在TML文档所需要的资源进行的HTTP请求上 HTTP链接产生的开销 域名解析--tcp链接--发送请求--等待--下载资源--解析时间 方案 图片地图:将多个图片合成一个图
Web资源防盗链处理 盗链:在自己的页面上展示一些不在自己服务器上的内容 防盗链的工作原理 通过Referer或者签名,网站可以检测目标网页访问来源网页,如过是资源文件,则可以跟踪到显示他的网页地址,吐过来源不是本站即进行阻止或者返回或者返回指定页面 Referer方法防盗链 Nginx 模块ngx
mysql性能问题-explain 可以通过分析sql执行计划:explain sql解析过程 from --- on join---where---group by--- having---select dinstinct---roder by limit--- 首先创建一个表: create t
show profiles show profiles:默认关闭 show variables like '%profiling%' set profiling = on show profiles会记录所有所有sql查询语句所花的时间 缺点:只能看到全部的总时间 show profile all
实现主从复制: master(主数据库)将改变的数据记录在本地的二进制日志中,该过程称之为二进制事件。 slave(从数据库)将master的二进制日志拷贝到自己的中继日志中。 将数据读取到自己的数据库中,中继日志事件。 MySQl主从复制是异步的,串行化的,有延迟 配置前 关闭防火墙,授权 1.
MySQl提供了一种日志记录,终于记录响应时间超过阈值的sql语句(long_query_time,默认10s),默认关闭,开发时打开,部署时关闭 检查是否开启慢查询日志:show variables like '%slow_query_log%' 临时开启:set gloabl slow_quer
mysql内部:连接层(提供与客户的服务)-》服务层(1提供各种接口,2sql优化器)-》引擎层(提供各种存储数据的方式)-》存储层(存储数据) 服务层中有sql优化器可能会影响优化 复合索引 跨列使用 如果有>,则自身和右侧全部失效() 尽量使用覆盖索引 like尽量以常量开头,不要意思'%'开头