mysql优化

MYSQL优化

  1. 为查询缓存优化你的查询
  2. EXPLAIN你的SELECT查询。根据结果给出分析相应的查询优化
  3. 当只要一行数据时使用LIMIT1,MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据。
  4. 为搜索字段建索引
  5. 在Join表的时候使用相当类型的数据,并将其索引
  6. 千万不要ORDER BY RAND()
  7. 避免 SELECT * 8. 永远为每张表设置一个ID,为数据库里的每张表都设置一个ID做为其主键,而且最好的是一个INT型的(推荐使用UNSIGNED),并设置上自动增加的AUTO-INCREMENT标志
  8. 使用ENUM而不是VARCHAR
  9. 从PROCEDURE ANALYSE()取得建议
  10. 尽可能的使用NOT NULL
  11. Prepared Statements,Prepared Statements可以检查一些你绑定好的变量,这样可以保护你的程序不会受到“SQL注入式”攻击。当然,你也可以手动地检查你的这些变量,然而,手动的检查容易出问题,而且很经常会被程序员忘了。当我们使用一些framework或是ORM的时候,这样的问题会好一些。
  12. 无缓冲的查询,mysql-unbuffered-query()发送一个SQL语句到MySQL而并不像mysql-query()一样去自动fethch和缓存结果。这会相当节约很多可观的内存,尤其是那些会产生大量结果的查询语句,并且,你不需要等到所有的结果都返回,只需要第一行数据返回的时候,你就可以开始马上开始工作于查询结果了。
  13. 把IP地址存成UNSIGNED INT
  14. 固定长度的表会更快,固定长度的表会提高性能,因为MySQL搜寻得会更快一些,因为这些固定的长度是很容易计算下一个数据的偏移量的,所以读取的自然也会很快。而如果字段不是定长的,那么,每一次要找下一条的话,需要程序找到主键。可能会浪费空间
  15. 垂直分割,“垂直分割”是一种把数据库中的表按列变成几张表的方法,这样可以降低表的复杂度和字段的数目,从而达到优化的目的。
  16. 拆分大的DELETE或INSERT语句,这两个操作是会锁表的,表一锁住了,别的操作都进不来了。
  17. 越小的列会越快
  18. 选择正确的存储引擎
  19. 用一个对象关系映射器(Object Relational Mapper)
  20. 小心“永久链接” mysql-pconnect()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才...
    aoshi阅读 1,261评论 0 0
  • 系统层面(基本不用动,看了下,买的云服务器基本都已经优化过了) 内核相关参数(/etc/sysctl.conf) ...
    神奇大叶子阅读 6,248评论 0 4
  • 一 OS系统优化 1 内核优化 1)IO调度优化 调整Linux默认的IO调度算法. IO调度器的总体目标是希望让...
    PennLi阅读 3,717评论 0 2
  • Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a:表的设计合理化(符合3NF) b:添...
    烈焰焚烧阅读 3,287评论 0 2
  • MySQL性能优化的21个最佳实践 TechTarget中国原创内容,原文链接:http://www.search...
    学_无_止_境阅读 8,462评论 0 30

友情链接更多精彩内容