手记

简单php网站的mysql优化小结

Mysql优化——前段

1.表结构

(a)主键——尽可能使用长度短、占用内存小、整形的主键

tinyint27-128到127

smallint215-32768到32767

mediumint223-8388608到8388607

int231

bigint263

(b)外键——对于批量可靠数据的插入建议去掉外键

(c)索引——在适当的表适当的列创建适当数量的适当索引,在查询优先和更新优先之间做平衡

适合添加索引的情况:在经常需要搜索的列上添加索引可以加快搜索的速度

在作为主键的列上强制该列的唯一性和组织表中数据的排列结构

在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的

在经常使用排序的列上创建索引

在经常使用where子句中的列上面创建索引

不适合添加索引的情况:对于查询中使用较少的列不加索引

对于很少数据值得列不加索引

对于定义text,image,bit的列不加索引

当修改性能远远大于检索性能是不加联合索引

联合索引:在特定的查询里联合索引的效果大于单一索引

索引长度:对于varchar,char用列的一部分创建索引

(d)使用非事务表——myisam 查询速度远远优于innodb


2.表字段

(a)优先使用enum、tinyint、时间类型,时间戳、ip用int存储。

(b)尽量缩短字段的长度

(c)优先使用notnull ,默认空字符或者特殊字符。

3.脚本程序

(a)不使用like,join 等高耗的sql,

(b)where子句尽量少字段,优先使用有索引的列

(c)查询字段尽量少,不使用*





0人推荐
随时随地看视频
慕课网APP