MySQL常见面试问题总结(三)
VI Mysql语句级优化 1.性能查的读语句,在innodb中统计行数,建议另外弄一张统计表,采用myisam,定期做统计.一般的对统计的数据不会要求太精准的情况下适用。 2.尽量不要在数据库中做运算。 3.避免负向查询和%前缀模糊查询。 4.不在索引列做运算或者使用函数。 5.不要在生产环境程序中使用select * from 的形式查询数据。只查询需要使用的列。 6.查询尽可能使用limit减少返回的行数,减少数据传输时间和带宽浪费。 7.where子句尽可能对查询列使用函数,因为对查询列使用函数用不到索引。 8.避免隐式类型转换,例如字符型一定要用’’,数字型一定不要使用’’。 9.所有的SQL关键词用大写,养成良好的习惯,避免SQL语句重复编译造成系统资源的浪费。 10.联表查询的时候,记得把小结果集放在前面,遵循小结果集驱动大结果集的原则。 11.开启慢查询,定期用explain优化慢查询中的SQL语句。 087 mysql是怎么备份的(重点)一、备份的目的 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到改变以前 测试:测试新功能是否可用 二、备份需要考虑的问题 可以容忍丢失多长时间的数据; 恢复数据要在多长时间内完; 恢复的时候是否需要持续提供服务; 恢复的对象,是整个库,多个表,还是单个库,单个表。 三、备份的类型 1、根据是否需要数据库离线 冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行; 温备(warm backup): 服务在线,但仅支持读请求,不允许写请求; 热备(hot backup):备份的同时,业务不受影响。 注: 1、这种类型的备份,取决于业务的需求,而不是备份工具 2、MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具 2、根据要备份的数据集合的范围 完全备份:full backup,备份全部字符集。 增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。 差异备份:differential backup 上次完全备份以来改变了的数据。 建议的恢复策略: 完全+增量+二进制日志 完全+差异+二进制日志 3、根据备份数据或文件 物理备份:直接备份数据文件 优点:备份和恢复操作都比较简单,能够跨mysql的版本,恢复速度快,属于文件系统级别的 建议:不要假设备份一定可用,要测试mysql>check tables;检测表是否可用 逻辑备份: 备份表中的数据和代码 优点:恢复简单、备份的结果为ASCII文件,可以编辑与存储引擎无关可以通过网络备份和恢复 缺点:备份或恢复都需要mysql服务器进程参与备份结果占据更多的空间,浮点数可能会丢失精度 还原之后,缩影需要重建 四:备份的对象 1、 数据; 2、配置文件; 3、代码:存储过程、存储函数、触发器 4、os相关的配置文件 5、复制相关的配置 6、二进制日志 五、备份和恢复的实现 1、利用select into outfile实现数据的备份与还原。 2、利用mysqldump工具对数据进行备份和还原 3、利用lvm快照实现几乎热备的数据备份与恢复 4、基于Xtrabackup做备份恢复。 优势: 1、快速可靠的进行完全备份 2、在备份的过程中不会影响到事务 3、支持数据流、网络传输、压缩,所以它可以有效的节约磁盘资源和网络带宽。 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |