首页 > 数据库 >MySQL查询优化

MySQL查询优化

时间:2024-05-19 20:29:21浏览次数:26  
标签:事务 查询 索引 MySQL 量过大 优化

MySQL查询优化

参考:Mysql数据库查询好慢,除了索引,还能因为什么?

一、MySQL查询效率低的常见原因

  1. 硬件性能不足
    • 磁盘IO速度慢
    • CPU性能不足
    • 内存不足
  2. 查询语句不合理
    • 使用过于复杂的子查询或者连接(JOIN)
    • 使用SELECT *而非选择特定的列
    • 使用非索引列进行条件判断
  3. 表结构问题
    • 表的行数过多
    • 表的列数过多
  4. 事务执行问题
    • 事务级别过高,导致不同事务之间产生竞争

二、如何优化MySQL查询速度

  1. 更换性能更强的硬件
  2. 对经常查询的属性创建索引
  3. 优化查询语句
    • 避免索引失效
    • 避免返回不必要的行或列
    • 谨慎使用子查询和连接
  4. 优化表结构
    • 单列数据量过大时考虑进行分表
    • 整体数据量过大时考虑进行分页
  5. 设置合理的事务隔离级别

标签:事务,查询,索引,MySQL,量过大,优化
From: https://www.cnblogs.com/yujunjiang/p/18200723

相关文章

  • 连表操作、子查询、pymysql 模块、sql注入问题(感觉已没有)
    【连表操作】1建表2createtabledep1(3idint,4namevarchar(20)5);6createtableemp1(7idintprimarykeyauto_increment,8namevarchar(20),9sexenum('male','female')notnulldefault'male&......
  • 快速理解MySQL null的10大坑
    创建表时应当设置notnull,添加一个默认值0或''去替代null。sum('field')的坑若一列的所有值都是null,那么sum函数的结果不是0,而是null,所以可能会因为值的类型兼容问题,出现意料之外的情况。null值会有NPE问题。count('field')的坑有null的列,count不会+1。where('field')的坑n......
  • mysql 统一修改字符集和字段属性
    --修改表字符集SELECTCONCAT("ALTERTABLE`",TABLE_NAME,"`CONVERTTOCHARACTERSETutf8mb4COLLATEutf8mb4_general_ci;")AStarget_tablesFROMINFORMATION_SCHEMA.TABLESWHERETABLE_SCHEMA="uat-zpg"ANDTABLE_TYPE="BASETABLE&q......
  • MySQL的索引优化
    一、索引的使用场景1、全值匹配通过主键索引查询mysql>explainselect*fromt_goodswhereid=1\G;***************************1.row***************************id:1select_type:SIMPLEtable:t_goodspartitions:NULLtyp......
  • java+mybatis+easyExcel快速导入excel数据到MySQL
    这里有一些数据需要导入数据库。demo地址:importExcel使用步骤如下:一、修改database相关内容 1.修改application.properties文件中数据库地址及信息二、新建实体类1.新建excel数据所符合的实体类,这里举例Excel中有如下数据,表头字段为“username”。数据......
  • Mysql新建日历表
    新建最近几十年的天 CREATETABLEifnotexistscalendar(account_daydate);INSERTINTOcalendar(account_day)SELECTDATE_ADD('2024-01-01',INTERVALnDAY)FROM(SELECTa.N+b.N*10+c.N*100+d.N*1000ASnFROM(SELECT0ASNUNIONSELECT1......
  • MySQL精度问题-hekui
    一、MySQL中datetime类型怎么处理毫秒MySQL中datetime日期类型,默认是精确到秒的。从MySQL5.6.4版本开始,可以设置精度,如datetime(3)表示精确到毫秒类型说明插入时赋值DB实际存储datetime(0)或datetime精确到秒2024-05-1900:00:00:4992024-05-1900:00:00:500202......
  • mysql5.7 报错:[ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOIN
    mysql5.7启动报错:2024-05-19T02:02:14.453082Z0[Warning]TIMESTAMPwithimplicitDEFAULTvalueisdeprecated.Pleaseuse--explicit_defaults_for_timestampserveroption(seedocumentationformoredetails).2024-05-19T02:02:14.453139Z0[Note]--secure-file......
  • OpenVX代码优化裁减简介
    OpenVX代码优化裁减简介 在OpenVX中,裁减(Reduction)是一种操作,它对数组或图像中的元素执行聚合操作。这里的“裁减”是指将大型数组或图像减少到单一数值的过程。OpenVX提供了几种不同的裁减操作,包括求和(Summation)、平均(Average)、最小值(Minimum)、最大值(Maximum)和累加器(Accumulat......
  • 用vboxmanage创建-删除-查询磁盘
    1、创建磁盘:vboxmanagecreatemediumdisk--filename="D:\vms\VirtualBox\OnlyConsole\Only\three.vdi"--size=20000--format=VDI2、删除磁盘:vboxmanageclosemedium.\three.vdi--delete3、查询注册表中有多少磁盘vboxmanagelisthdds创建磁盘帮助文档VBoxManagecre......