mysql优化

mysql优化

并发性的 SQL 少用(不用)多表操作(join), 将复杂的SQL拆分多次执行。

1. 用EXPLAIN使你的SELECT查询更加清晰
EXPLAIN查询得到的结果,清晰明了的看出哪些索引起到了作用,又有哪些字段此时没有用到索引需要建立索引才会起到作用,表是如何被扫描和排序的等等。
实现一个SELECT查询(最好是比较复杂的一个,带join方式的),在这里我们可以使用navicat,就可以很清楚的看清结果。
2.优化MySQL查询缓存
在MySQL服务器上进行查询,可以启用高速查询缓存,这是提高性能的最有效方法之一。当同一个查询被执行多次时,这个时候就需要用到缓存(例如列表页等不经常变动的数据)
3. 利用LIMIT 1取得唯一行
当你要查询一张表是恰好是只要这一条数据就可以满足你想要的结果,那么这个时候加一个LIMIT 1会令你的查询更加有效率。这样数据库引擎发现只有1后将停止扫描,而不是去扫描整个表或索引。
4. 索引中的检索字段
索引不仅是主键或唯一键。如果你想搜索表中的任何列,你应该一直指向索引。
5. 保证连接的索引是相同的类型
如果执行的sql语句中包含多个连接查询,此时要确保你链接的列在两边的表上都被索引。这会影响MySQL如何优化内部联接操作。(⚠️加入的列,要保证类型一致性。)
例如,即使两个表字符编码一致性,第一张表你加入一个float列,而在另一个表中加入int列,MySQL将无法使用其中至少一个指标。
6. 不要使用BY RAND()命令
MySQL可能会为表中每一个独立的行执行BY RAND()命令(这会消耗处理器的处理能力),然后给你仅仅返回一行。
*7. 尽量避免SELECT 命令
从表中读取越多的数据,查询会变得更慢。
8. 从性能和安全上来考虑问题
9. 将IP地址存储为无符号整型
许多人在创建一个VARCHAR(15)时并没有意识到他们可以将IP地址以整数形式来存储。当你有一个INT类型时,你只占用4个字节的空间,这是一个固定大小的领域。

   你必须确定你所操作的列是一个UNSIGNED INT类型的,因为IP地址将使用32位unsigned integer。

你可能感兴趣的:(MYSQL)