首页 > 代码库 > mysqk优化概述
mysqk优化概述
一般有以下重要的几点
1.数据库设计
一般需要满足三范式
合适的存储引擎
优化数据字段类型
2.sql语句优化
定位执行效率较低的sql语句(重点是select)
Show variables like ‘long_query_time‘; set long_query_time=2 修改为2秒
通过explain分析
explain select *from emp where ename = ‘张三‘;
确定问题并采取优化措施
建立索引
1.频繁作为查询条件的字段应该创建索引 (唯一性太差和更新频繁的不适合)
2.不会出现在where子句中的字段不该创建索引
可能会用到索引
1.多列索引, 只要查询条件用到了最左边的列, 索引一般会被使用
2.对于like查询, ‘%aaa‘不会使用索引, ‘aaa%‘会使用索引
不会使用到索引
1.条件中有or, 即使有条件带索引也不会使用
2.多列索引, 如果不使用第一部分, 则都不会使用
3.like查询以 %开头
4.字符串不加引号
5.如果mysql估计全表扫描比使用索引快, 则不会用.
分表技术
当一张表越来越大, 即使添加索引还慢的话, 可以考虑分表技术
水平切分, 将记录散列到不同的表中, 每次从分表中查询, 提高效率
垂直切分, 将表中大字段单独拆分到另外一张表, 形成一对一的关系
3.数据库参数配置
innodb_additional_mem_pool_size 内存池 大小, 默认为8M,数据库中的表数量越多,参数值应该越大,如果 InnoDB 用完了内存池中的内存,就会从操作系统中分配内存,同时在 error log 中打入报警信息
innodb-buffer-pool-size 缓冲池大小
对于myisam, 需要调整 keu_buffer_size
4.硬件资源和操作系统恰当
这四个顺序也表现了对性能影响的大小
mysqk优化概述
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。