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子句中的字段执行表达式操作,这将导致引擎放弃索引的完整表扫描
标签:语句,where,查询,问题,索引,MySQL,优化,冗余 来源: https://www.cnblogs.com/shineen/p/16324850.html