也是一个网上很多的问题,然后自己总结:用很多博客的说法是,mysql优化从几个方面来考虑
一,表级别的优化
1,为字段选取合适的类型,字段长度越短越好,原因:会影响存储空间开销,会影响查询性能
2,用join代替子查询,join的条件尽量使用相同的类型 原因:子查询会在内存中产生一个临时表
3,避免使用select * ,这个条件在oracle里面也是适用的
4,尽量使用not null 原因:可空列需要更多的存储空间,虽然不太理解这个原因,但是先记住吧
5,只有一条数据的时候使用 limit 1 原因:MySQL数据库引擎会在找到一条数据后停止搜索,而不是继续往后查少下一条符合记录的数据
6,为字段建立索引,这一条又可以拓展出一个关于索引的大问题,先到此打住
7,为表选取合适的存储引擎,本人知道一点的就3个 innodb myisam,memory
8,小心永久连接 mysql_pconnect 和mysql_connect的持久链接,不会关闭了链接,即使你使用了mysql_close();建立连接后,将保持sleep状态
9,表分割:垂直分割,水平分割,水平分割指将一张表的数据,使用多张相同的表来保存,垂直分割指将表拆分成多张表,常用的字段放在一张表里面,不常用的表字段一张表(或多张表)
10,使用explain 查看查询的查询计划 ,这个也可以展开为一个大问题
11,索引字段上面不要做计算
二,还有别的级别的优化,但是不懂了,只能到这里了。。。