MySql教程

MySQL优化?? 问题

本文主要是介绍MySQL优化?? 问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、发布系统的存储采用MySQL数据库。每天增加5万多件,预计运行和维护将持续三年。如何优化它?

  • a、 设计良好的数据库结构允许部分数据冗余,尽可能避免join查询,并提高效率。
  • b、 选择适当的表字段数据类型和存储引擎,并适当添加索引。
  • c、 Mysql数据库主从读写分离。
  • d、 查找常规表以减少单个表中的数据量并提高查询速度。
  • E、 添加缓存机制,如memcached和APC。
  • f、 不经常更改的页面变为静态页面。
  • g、 写入⾼ 高效的SQL。⽐ 例如,select*from table更改为select field\u1。字段2。表中的字段\u3

2、如何在实践中优化MySQL

  • 最好按以下顺序进行优化:
  • 1、SQL语句和索引优化
  • 2、数据库表结构优化
  • 3、系统配置优化
  • 4、硬件优化

3、数据库优化方法

  • 1、选择最合适的字段属性,尽可能减小定义的字段宽度,并尽可能将字段设置为notnull,例如,“省”和“性别”最适合“枚举”
  • 2、将“查询”改为“加入”
  • 3、使用union替换自动创建的临时表
  • 4、交易处理
  • 5、锁定表,优化事务处理
  • 6、适应外键,优化锁台
  • 7、索引
  • 8、优化查询语句

4、如何通俗地理解这三种范式?

  • 答案:the⼀ 范式:1NF是对属性的原始约束,要求属性是原始的,不能分解;
  • 第二种范式:2NF是对记录唯一性的约束,要求记录具有唯一性标识符,即实体的唯一性;
  • 第三种范式:3NF是对字段冗余的约束,即任何字段都不能由其他字段发送。它要求字段没有冗余。。
  • 规范化设计的优缺点:
  • 优势:
  • 可以尽可能减少数据冗余,以便更新速度更快,卷更大⼩
  • 缺点:对于查询,需要输入多个表⾏ 联想,降低了写作效率,提高了阅读效率,使其更难进入⾏ 索引优化
  • 非规范化:
  • 优点:可以减少表之间的关联,更好地优化索引
  • 缺点:数据冗余,数据异常,数据修改成本较高

5、优化SQL语句的方法有哪些?

  • (1) 在“where”语句中:“where”表之间的连接必须写在其他“where”条件之前。可以过滤出最多“数量”记录的条件必须写在“where”语句的末尾
  • 尾巴有尾巴。
  • (2)⽤ 存在替换中,⽤ not exists替换not in。
  • (3) 避免⽤ 对索引列的评估
  • (4) 避免制造⽤ 为null且索引列上不为null
  • (5) 要优化查询,请尽量避免全表扫描。首先,考虑在where和order by中涉及的列上建立索引。
  • (6) 尽量避免在where子句中输入null值,否则引擎将放弃使索引进入完整表扫描
  • (7) 尽量避免对where子句中的字段执行表达式操作,这将导致引擎放弃索引的完整表扫描
这篇关于MySQL优化?? 问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!