Mysql优化

来源:互联网 发布:久其通用数据平台 编辑:程序博客网 时间:2024/06/07 12:03

在现在的后台开发中,磁盘往往成为了运行瓶颈,而对于大部分应用而言,数据库就是最大的瓶颈。下面列一些mysql的优化点。

  1. 使用ORM,使用ORM不仅仅防止SQL注入,提供操作便利,方便数据库切换等;同时大部分程序员也不会比ORM里面写的SQL语句更好。
  2. 为经常用来做搜索的字段建立索引,但不要为太多字段建立索引,因为插入,删除,甚至update索引字段都会导致对索引的操作,这时会影响数据库的操作速度。
  3. 在表的数据量不是太庞大,单个字段长度变化不大的情况下,使用CHAR代替VARCHAR;如果一个表的所有字段都是定长时,那么每一行也都是固定长度,对比不定长表这会对数据的操作提供很大的加速。
  4. 在确定数据范围或者需求时,采用尽量小的数据类型进行存储;比如学生的考试成绩你可以考虑使用TINYINT,
    SMALLINT来代替INT,使用DATE代替DATETIME

    TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT在mysql中分别占用1,2,3,4,8个字节
  5. 如果一个频繁使用的查询需要join几个表,就可以考虑将部分字段进行冗余存储,因为join表的消耗实在是太大了。

  6. 妥善配置mysqld参数,会很大程度影响你的mysql查询效率。参考windows版的my.ini或者官网吧

  7. 查询时指定查询的列,尽量不要使用select *,对于表列数较大时尤其重要,时时刻刻把减少磁盘IO记在心中

  8. 如果只是判断存在与否,使用select 1 where语法 要多少行取多少行,多使用limit

  9. 少写一些复杂的存储过程,记住我们的瓶颈多在数据库;另外不能应对数据库切换。

  10. 对于特别大数据量的表,使用分区存储。参考:http://blog.csdn.net/feihong247/article/details/8100960

  11. 使用数据库集群,其实部分原理跟分区存储是相似的。

对于mongodb的优化也是类似的方法,比如建立索引,在确定数据规格的情况下考虑使用 capped collection等.

0 0
原创粉丝点击