mysql中有哪些优化select和where子句的方法?

分类:编程技术 时间:2024-02-20 15:18 浏览:0 评论:0
0
小编给大家分享一下MySQL中优化select和where子句的方法。相信大多数人对此还不是很了解,所以分享这篇文章供大家参考。希望您读完这篇文章后能有所收获。 ,让我们一起来了解一下吧!

数据库优化:

1.优化可以在单个 SQL 语句、整个应用程序、单个数据库服务器或多个网络数据库服务器级别执行< 2。数据库性能取决于数据库级别的多个因素,例如表、查询和配置设置< br/>3.数据库层面优化,硬件层面优化,平衡可移植性和性能
4.适当的结构、适当的数据类型;对大量表(少数列)执行频繁更新的应用程序;使用少量表(多列)分析大量数据的应用程序;选择合适的存储引擎nes和索引;
5.压缩适用于InnoDB表的各种工作负载,以及只读MyISAM表
6.选择合适的锁定策略; InnoDB存储引擎可以处理大多数锁定问题
7。配置的主要内存区域是InnoDB缓冲池和MyISAM键缓存。
8.优化select语句。此技术也适用于其他带有 where 的删除语句。在where子句的列上设置索引;索引对于引用多列(例如联接和外键)尤其重要

Select where 子句优化:

1.调整查询的结构,例如函数调用,并对结果集中的每一行仅调用一次。表中的每一行仅调用一次
2。减少查询中全表扫描的次数
3.定期使用 ANALYZE TABLE 语句使表统计信息保持最新
4。了解具体的Tuning技术,指标t表存储引擎技术及配置参数
5.优化InnoDB表的单查询事务
6.通过读取EXPLAIN计划并调整索引、WHERE子句、join子句等。调查特定查询的内部细节
7.调整 MySQL 用于缓存的内存区域的大小和属性。通过有效利用InnoDB缓冲池、MyISAM键缓存和MySQL查询缓存
8.where条件,去除不必要的括号,常量折叠,常量条件去除,减少不必要的逻辑
9.被索引所使用的常量表达式仅计算一次
10。 count(*)直接从表信息中查询;当只有一张表时,not null表达式也是如此
11.如果不使用GROUP BY或聚合函数(COUNT()、MIN()等),HAVING将会与WHERE合并
12.常量表,只有一行或者空表; where 子句作用于主键或唯一索引
13。如果ORDER BY如果GROUP BY子句和GROUP BY子句中的所有列都来自同一个表,那么连接时将优先选择该表
14。如果order by子句和group by子句不同,或者来自不同的表,则会创建临时表
15.如果使用 SQL_SMALL_RESULT 修饰符,MySQL 将使用内存临时表
16。 MySQL 可以直接从索引中读取行,甚至无需查阅数据文件
17。每行输出前,不匹配HAVING子句的行将被跳过

下面的表用作常量表:

 SELECT * FROM t WHERE Primary_key=1;SELECT * FROM t1,t2 WHERE t1.primary_key=1 AND t2.primary_key=t1.id;

以下查询运行速度非常快:

从 tbl_name 中选择 COUNT(*);从 tbl_name 中选择 MIN(key_part1),MAX(key_part1);从 tbl_name 中选择 MAX(key_part2) WHERE key_part1=constant;SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,... LIMIT 10;SELECT ... FROM tbl_name ORDER BY key_part1 DESC, key_part2 DESC, ... LIMIT 10;

假设索引列是数字,以下查询仅使用索引树:

SELECT key_part1,key_part2 FROM tbl_name WHERE key_part1=val;SELECT COUNT(*) FROM tbl_name WHERE key_part1=val1 ANDkey_part2=val2; SELECT key_part2 FROM tbl_name GROUP BY key_part1;

下面的查询使用索引按排序顺序检索数据,不需要单独排序

SELECT ... FROM tbl_name ORDER BY key_part1,key_part2,... ;SELECT ... FROM tbl_name ORDER BY key_part1 DESC, key_part2 DESC, ... ;

上面这就是这篇文章《MySQL中优化select和where子句的方法有哪些?》的全部内容。感谢您的阅读!相信大家都有一定的了解,希望故事能够不分享会对大家有帮助。如果您想了解更多知识,请关注行业资讯频道!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > mysql中有哪些优化select和where子句的方法?

用户评论