-
为查询缓存优化你的查询
大多数MySQL服务器开启了查询缓存。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样后续的相同的查询就不用操作表而直接访问缓存结果。
select * from a where create_time > now(),这个是不走查询缓存的。
select * from a where create_time > #{time}
,这个是走查询缓存的 -
explain select查询
使用EXPLAIN关键字可以让你知道MySQL是如何处理的你的SQL语句的。这可以帮你分析你的查询语句或是表结果的性能瓶颈。 -
当只要一行数据时,使用Limit 1
因为MySQL会在找到一条数据后停止搜索,而不是继续查询下一条符合记录的数据。 -
为搜索字段建索引
-
在Join表的时候使用相当类型的列,并将其索引
-
千万不要ORDER BY RAND()(随机返回,我竟然都不知道这么用~~,反正建议我不要这么用)
-
避免select *
-
永远为每一张表设置一个Id主键
-
在一些性别 民族 状态 部,知道这些字段的取值是有限而且固定的,应该使用ENUM而不是varchar
-
从PROCEDURE ANALYSE()取得建议
SELECT
*
FROM
a PROCEDURE analyse () -
尽可能使用notNull
对MySQL来说,null是一个特殊的值,Conceptually, NULL means “a missing unknown value” and it is treated somewhat differently from other values。比如:不能使用=,<,>这样的运算符,对null做算术运算的结果都是null,count时不会包括null行等,null比空字符串需要更多的存储空间等。 -
拆分大的delete 或者insert
MySQL优化实践
最新推荐文章于 2024-07-07 13:00:43 发布