mysql优化方面的面试题
1.MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
a. 设计良好的数据库结构,允许部分数据冗余,尽量避免join查询,提高效率。
b. 选择合适的表字段数据类型和存储引擎,适当的添加索引。
c. mysql库主从读写分离。
d. 找规律分表,减少单表中的数据量提高查询速度。
e。添加缓存机制,比如memcached,apc等。
f. 不经常改动的页面,生成静态页面。
g. 书写高效率的SQL。比如 SELECT * FROM TABEL 改为 SELECT field_1, field_2, field_3 FROM TABLE.
2.实践中如何优化MySQL
最好是按照以下顺序优化:
1.SQL语句及索引的优化
2. 数据库表结构的优化
3.系统配置的优化
4.硬件的优化
3.优化数据库的方法
- 选取最适用的字段属性,尽可能减少定义字段宽度,尽量把字段设置NOTNULL,例如’省份’、’性别’最好适用ENUM
- 使用连接(JOIN)来代替子查询
- 适用联合(UNION)来代替手动创建的临时表
- 事务处理
- 锁定表、优化事务处理
- 适用外键,优化锁定表
- 建立索引
- 优化查询语句
4.如何通俗地理解三个范式?
答:第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。。
范式化设计优缺点:
优点:
可以尽量得减少数据冗余,使得更新快,体积小
缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引优化
反范式化:
优点:可以减少表得关联,可以更好得进行索引优化
缺点:数据冗余以及数据异常,数据得修改需要更多的成本
5.说说对SQL语句优化有哪些方法?(选择几条)
(1)Where子句中:where表之间的连接必须写在其他Where条件之前,那些可以过滤掉最大数量记录的条件必须写在Where子句的末尾.HAVING最后。
(2)用EXISTS替代IN、用NOT EXISTS替代NOT IN。
(3) 避免在索引列上使用计算
(4)避免在索引列上使用IS NULL和IS NOT NULL
(5)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
(6)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
(7)应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描
mysql优化方面的面试题相关推荐
- 面试过程中常遇到的Mysql优化方面的面试题
1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 2.MySQL中myisam与innodb的区别,至少5点 (1).问5点不同: (2).innodb引擎的4大特性 (3). ...
- MySql性能优化及常见面试题
数据库优化四个维度 硬件升级 系统配置 表结构设计 sql语句及索引 优化选择 优化成本:硬件升级 > 系统配置 > 表结构设计 > sql语句及索引 优化效果:硬件升级 < ...
- mysql优化-面试题
第一方面:30种mysql优化sql语句查询的方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 whe ...
- 【mysql优化专题】本专题终极总结(共12篇)
本专题目录如下: 一.为什么要进行mysql优化?(重点) 二.增删改优化,多数人都会忽略的优化 三.关于单表查询,可以这么优化 四.关于多表查询,不得不看的优化 五.索引优化(重点中的重点) 六.表 ...
- awr报告分析 mysql_4个MySQL优化工具,帮你准确定位数据库瓶颈!
作者:老王谈运维原文:https://www.toutiao.com/a6691523026984370699/ 对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你 ...
- php面试mysql数据库题_PHP面试题 - MySQL数据库
1. 写出下面2个PHP操作Mysql函数的作用和区别(新浪网技术部) mysql_num_rows() mysql_affected_rows() 这两个函数都作用于mysql_query($que ...
- Mysql优化(高级篇)
Mysql数据库优化篇 Q: 为什么别人问你MySQL优化的知识 总是没有底气. A: 因为你只是回答一些大而化之的调优原则, 比如:"建立合理索引"(什么样的索引合理?) &qu ...
- MySQL优化配置之query_cache_size
原理 MySQL查询缓存保存查询返回的完整结果.当查询命中该缓存,会立刻返回结果,跳过了解析,优化和执行阶段. 查询缓存会跟踪查询中涉及的每个表,如果这写表发生变化,那么和这个表相关的所有缓存都将失 ...
- 小型网站到大型网站-Mysql优化
2019独角兽企业重金招聘Python工程师标准>>> 背景 好的大型网站都是从小型网站慢慢演变来的,都不是一步就设计好的.现在的淘宝,03年创建的时候它也是只有一台服务器,使用的是 ...
- 4 个 MySQL 优化工具 AWR,帮你准确定位数据库瓶颈!
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:今日头条,作者:老王谈运维 www.toutiao.com/ ...
最新文章
- C++ string中find ,rfind 等函数 用法总结及示例
- Xposed源码剖析——概述
- Segment,Path,Ring和Polyline对象
- Qt踩坑之打包exe
- ASP.NET Core和Blazor Code Venture:配置Azure AD身份验证
- 【less-6】sqli-labs靶场第六关(类似less-5)
- 云南科软信息科技有限公司
- Mongodb入门安装
- 50行代码实现的一个最简单的基于 DirectShow 的视频播放器
- Java 8 新特性(一)lambda表达式
- paip. c++ doxygen 文档工具的使用以及跟QT CREATOR的集成
- Effective C++ 英中简繁术语对照
- jmeter常见面试题
- ​新型冠状病毒是对未来自我隔离的预演?
- Java tif转jpg代码实现
- 英语科技论文写作语法积累
- 人工智能新风口上,网易是否能够突围?
- BH1750 光照传感器文档详解 及 驱动设计
- 查查自己五行属什么命
- 新一代图片编解码技术在淘宝的应用及落地
热门文章
- matlab计算潮流,matlab潮流计算
- c语言实验报告1.4.3,c语言实验报告实验三.doc
- 小米手机怎么在图片显示定位服务器,小米浏览器中,图片导致fixed定位的元素无法显示...
- Android直播APP源码搭建中豪华物特效的实现
- 最优化理论——最速下降法
- jquery datatables api (转)
- 安装虚拟机报错 This kernel requires an X86-64 CPU,but only detected an i686 CPU
- Win10如何为命令提示符增加输入命令获取管理员权限功能?
- Sigmoid函数求导
- 普元EOS:文件上传单个文件或多选文件上传