首页 > 数据库 >十三,mysql的优化,详细篇

十三,mysql的优化,详细篇

时间:2024-07-09 13:01:31浏览次数:16  
标签:十三 使用 外键 查询 索引 mysql 优化

目录

一,从设计上优化

二,从查询上优化

三,从索引上优化

四,从存储上优化


一,从设计上优化

        1,合理的进行数据库设计,通过规范化设计可以避免数据冗余,也可以适当的反规范化设计提高查询性能.

       2, 选择合适的数据类型,确保使用最合适的数据类型来存储数据,避免使用过大或者复杂的数据类型.比如控制varchar的长度,比如可以选择用enum枚举类型来代替简单的列类型,可以选择用tinyint代替int或者bigint等.

        3,每一个表推荐一个主键约束.建立主键的同时其实也建立了主键索引.

        4, 表和表之间推荐建立外键约束,保持数据的完整性和一致性,同时外键也可以被mysql的优化器用来优化查询.

        5,批量插入数据的时候,用values而非value.尽量用一条insert into语句插入多条数据,而非一条一条的插入.

二,从查询上优化

        1,避免使用select * .查询我们需求的列,而非*全部,减少数据的传输量.

        2,避免使用子查询,用连接来代替子查询,表与表之间的连接通常建立的有外键关系,而外键建立的同时也具备了外键索引功能.

        3,使用where子句  尽早的过滤不需要的数据,减少数据的处理量.

        4,使用limit检索,限制结果集,一次只提取少量数量,提高查询效率.

        5,当遇到查询非常慢的时候,可以使用explain分析查询命令,来执行计划.排查效率瓶颈,进一步优化.

        6,使用视图查询.

三,从索引上优化

        1.为经常作为查询条件的列创建索引.

        2,当查询条件涉及到多个列的时候,可以创建复合索引,组合索引遵循最左原则.

        3,编写查询语句的时候,精准的命中索引,提高查询效率.

        4,定期删除无用索引,清理存储空间和提高新表性能.

四,从存储上优化

        1,提高mysql缓存配置参数,比如InnoDB存储引擎的缓存池大小,和查询缓存大小.以适应实际工作的负载.

        2,启动慢查询日志,并定期分析慢查询日志,找出并优化执行时间较长的sql查询语句.

        3,选择合适的存储引擎,在不需要事务和外键的事后可以选择使用mysam引擎,在需要事务和外键的时候选择InnoDB引擎.

        4,使用更快的存储设备,比如固态硬盘代替传统的机械硬盘.

        5,给mysql服务器分配更多的内存,可以减少磁盘I/O操作,提高性能.

标签:十三,使用,外键,查询,索引,mysql,优化
From: https://blog.csdn.net/qq_55006020/article/details/140284650

相关文章

  • 6 Ansible使用优化
    1加大forks的值默认forks=5,即最多5个Ansible工作进程。即便是只有6个目标节点,对于"效率"常挂嘴边的21世纪IT人来说,这么一点数量的工作进程,也显然是杯水车薪。对于Ansible来说,它的的大多数任务都是分派给目标节点去执行的,所以控制端通常比较闲暇。换句话说,控制端在浪费宝贵的资......
  • mysql注入总结
    1.SQL注入漏洞概述什么是SQL注入SQL注入(SQLi)是一种网络安全漏洞,允许攻击者干扰应用程序对其数据库的查询。通过浏览器或者其他客户端将恶意SQL语句插入到网站参数中,而网站应用程序未对其进行过滤,SQL语句带入数据库使恶意SQL语句得以执行可以查看通常无法检索的数据。这可能包括......
  • 参加科学大会-卡玛(堆优化版Dijkstra)
    学习参考:代码随想录与Prim类似,当节点数目较多,边的数量很小的时候(稀疏图),可以考虑从边的角度来求最短路,邻接矩阵遇到稀疏图,会导致申请过大的二维数组造成空间浪费且遍历边的时候需要遍历整个n*n矩阵,造成时间浪费。这时使用邻接链表明显更加符合需求。而在朴素版Dijk......
  • MySQL 进阶(二)【索引详解】
    前言    程序员避不开和数据库打交道,大数据更是如此,不管是MySQL、Oracle、SQLServer这些OLTP数据库,还是Greeplum、StarRocks、Hive、SparkSQL、FlinkSQL、ClickHouse等OLAP数据库,SQL都是最基础最重要的能力,数据库知识也是每一个程序员必备的知识。  ......
  • JVM-性能优化工具 MAT
    一、MAT下载和安装1、概述MAT(MemoryAnalyzerTool)工具是一款功能强大的]ava堆内存分析器。可以用于查找内存泄漏以及查看内存消耗情况。MAT是基于Eclipse开发的,不仅可以单独使用,还可以作为插件的形式嵌入在Eclipse中使用。是一款免费的性能分析工具,使用起来非常方便。2、下载地址......
  • mysql 误更新记录恢复 update更新字段值恢复 mysql数据库更新字段值恢复
    近日极佳mysql数据库恢复软件加入mysql的 update更新字段值的恢复例如 updatejnx_clean_ordersetno='qwertyuiop'将 jnx_clean_order 表的 no字段值 全部变成了 qwertyuiop  这种情况 1可以从 mysqlbin 日志恢复, 如果没有开启binlog 那就比较麻烦了。2......
  • mysql的主挂了,从怎么将多出来的数据同步到主?
    在MySQL的复制环境中,通常主库(Master)是数据的主要来源,而从库(Slave)从主库复制数据以实现数据的同步。但是,如果你的场景中出现了从库包含了主库中没有的数据(这种情况较为罕见,可能是人为错误或配置错误导致的),将这部分数据同步回主库将需要一些特殊操作,因为MySQL复制机制默认是从主......
  • 【MySQL MGR管理】MySQL5.7 MGR集群切换测试
    一、服务器环境MySQL5.7MGR集群切换目标:故障切换,启用备选主之后。还原MGR,切换回原主服务器信息[root@0321-mysqlmgr3~]#cat/etc/hosts127.0.0.1localhostlocalhost.localdomainlocalhost4localhost4.localdomain4::1localhostlocalhost.localdomainloc......
  • 融合需求侧虚拟储能系统的楼宇微网优化调度(Matlab代码实现)
    ......
  • 计及需求响应的改进灰狼优化算法求解风、光、柴、储容量优化配置(Matlab代码实现)
     ......