MySQL优化
文章平均质量分 70
勉之~
遇事不怕,就怕没有解决的能力,不断提升自己,做一个勇往直前的人,Fighting!!!
展开
-
MySQL之系统性能优化
MySQL之系统性能优化 一 性能优化分页 1 问题描述 在分页时,越到后面页码越大,查询花费时间越多,比如limit 1000000,10,这样前1000000条记录不需要但是要查,比较耗时。 2 优化解决 通过子查询,使用主键索引只分页查询id值,在去除笛卡尔积即可。 select * from t_user limit 100000000,10; 优化后 select * from t_user u, **(select id from t_user order by id limit 100000原创 2021-03-22 23:04:20 · 58 阅读 · 0 评论 -
MySQL之内存管理及优化
MySQL之内存管理及优化 一 内存优化原则 1 将尽量多的内存分配给MySQL做缓存,但要给操作系统和其他程序预留足够的内存 2 MYISAM存储引擎的数据文件读取依赖于操作系统自身的IO缓存,因此,如果有MYISAM表,就要预留更多的内存给操作系统做IO缓存 3 排序区、连接区等缓存是分配给每个数据库会话专用的,其默认值的设置要根据最大连接数合理分配,如果设置太大,不但浪费资源,而且在并发连接较高时会导致物理内存耗尽。 二 MYISAM内存优化 MYISAM存储引擎使用key_buffer缓存索引块,加原创 2021-03-21 14:49:13 · 297 阅读 · 0 评论 -
MySQL之查询缓存优化
MySQL之查询缓存优化 一 概述 开启MySQL的查询缓存,当执行完全相同的SQL语句时,服务器就会直接从缓存中获取结果,当数据修改,之前的缓存会失效,修改比较频繁的表不适合做查询缓存。 二 操作流程 1 客户端发送一条查询SQL给服务器; 2 服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果,否则进入下一阶段 3 服务器对SQL进行解析、预处理,再由优化器生成对应的执行计划; 4 MySQL根据执行计划调用存储引擎的API执行查询 5 将结果返回给客户端,并将结果放到缓存中 流程图如原创 2021-03-20 21:32:06 · 59 阅读 · 0 评论 -
MySQL之应用优化
MySQL之应用优化 一 使用连接池 对于访问数据库来说,建立连接的代价是比较昂贵的,因为我们频繁的创建关闭连接是比较耗费资源的,我们有必要建立数据库连接池以提高访问的性能。 二 减少对数据库的访问 1 避免丢数据的重复检索 在编写应用代码时,能够一次连接就获得结果的不需要两次连接,这样可以避免对数据库无用的重复请求, 2 增加cache层 在应用中,我们可增加缓存层来达到减轻数据库的负担,因此可以部数据从数据库中抽取出来放到应用端一文本方式存储,或者使用框架(Mybatis,Hibernate)提供的一级原创 2021-03-20 19:57:45 · 48 阅读 · 0 评论 -
MySQL之SQL优化(高级)
MySQL之SQL优化 一 批量插入数据 使用load命令 (1)前提需要数据是有序的,否则耗时长。 load datat local infile '数据文件路劲' into table '表' fields terminated by ',' lines terminated by '\n';--字段间以逗号隔开,每行之间以换行符隔开 (2)关闭唯一性校验 在导入数据前执行SET UNIQUE_CHECKS=0,关闭唯一性校验,在导入后执行SET UNIQUE_CHECKS=1开启唯一性校验,可以提原创 2021-03-17 23:01:21 · 148 阅读 · 0 评论 -
MySQL之优化SQL步骤(高级)
MySQL之优化SQL步骤 一 查询SQL执行频率 (1)查看语法 ① 查看当前会话的所有统计参数的信息 show status like 'Con_______ ';–7个下划线 ② 查看全局信息 show global status like 'Con_______ ‘; ③ 显示InnoDB的增删改查影响的信息 show status like ‘Innodb_rows_%’; (2)截图如下: 二 定位低效SQL语句 可以通过以下两种方式定位执行效率低的SQL语句 (1)慢查询日志:用–l原创 2021-03-15 22:00:21 · 128 阅读 · 0 评论