【MySQL】20个经典面试题
最全MySQL面试题和答案
MYSQL调优
数据库备份
SQL 优化的一般步骤
常用的SQL的优化
sql语句练习50题(Mysql版)
MySql面试题
网站首页
MYSQL调优
硬件配置的优化就不说了。 #### 1.在编译时优化 使用合适的编译器; 选择想要使用的字符集编译mysql 将mysqld编译成静态执行文件 配置样本 #### 2.表类型的选择 MySQL确实为用户提供5种不同的表类型,称为DBD、HEAP、ISAM、MERGE和MyIASM。DBD归为事务安全类,而其他为非事务安全类。 DBD:包括BDB和InnoDB。 BDB 全称是”Brekeley DB”,它是Mysql最早的具有事务能力的表的类型。最新版本的Mysql已经计划移除对BDB的支持,转而全力发展InnoDB。 InnoDB 是较新的事务安全型存储引擎,用于事务处理应用程序,支持BDB的几乎所有特性,并具有众多新特性,包括ACID事务支持。 #### 3.优化工具的使用 MySQL服务器本身提供了几条内置命令用于帮助优化。 SHOW SHOW还能做更多的事情。它可以显示关于日志文件、特定数据库、表、索引、进程和权限表中有价值的信息。 EXPLAIN 当你面对SELECT语句时,EXPLAIN解释SELECT命令如何被处理。这不仅对决定是否应该增加一个索引,而且对决定一个复杂的Join如何被MySQL处理都是有帮助的。 OPTIMIZE OPTIMIZE语句允许你恢复空间和合并数据文件碎片,对包含变长行的表进行了大量更新和删除后,这样做特别重要。OPTIMIZE目前只工作于MyIASM和BDB表。InnoDB不能用 #### 4.表的设计 字段类型的选择、表和字段的命名规则、针对InnoDB的主键选择、尽量使用Not Null(原因1.使用含有NULL列做索引的话会占用更多的磁盘空间,因为索引NULL列需要而外的空间来保存。 2.进行比较的时候,程序会更复杂。 3.含有NULL的列比较特殊,SQL难优化,如果是一个组合索引,那么这个NULL 类型的字段会极大影响整个索引的效率。 )等等 #### 5.mysql语句级优化 1.性能差的读语句,在innodb中统计行数,建议另外弄一张统计表,采用myisam,定期做统计.一般的对统计的数据不会要求太精准的情况下适用。 2.尽量不要在数据库中做运算。 3.避免负向查询和%前缀模糊查询。 4.不在索引列做运算或者使用函数。 5.不要在生产环境程序中使用select * from 的形式查询数据。只查询需要使用的列。 6.查询尽可能使用limit减少返回的行数,减少数据传输时间和带宽浪费。 7.where子句尽可能对查询列使用函数,因为对查询列使用函数用不到索引。 8.避免隐式类型转换,例如字符型一定要用’’,数字型一定不要使用’’。 9.所有的SQL关键词用大写,养成良好的习惯,避免SQL语句重复编译造成系统资源的浪费。 10.联表查询的时候,记得把小结果集放在前面,遵循小结果集驱动大结果集的原则。 11.开启慢查询,定期用explain优化慢查询中的SQL语句。 还有索引上的优化。(见上文) 以及配置文件上的优化(自行查询) #### 6.服务器的选择 开启mysql复制,实现读写分离、负载均衡,将读的负载分摊到多个从服务器上,提高服务器的处理能力。 使用推荐的GA版本,提升性能 利用分区新功能进行大数据的数据拆分 ---- 原文链接:https://blog.csdn.net/mulinsen77/article/details/86563953
上一篇:
最全MySQL面试题和答案
下一篇:
数据库备份