SQL语句的优化:
<一> :尽量使用单表查询,不适用多表查询(子查询)
<二> :使用distinct
<三> :尽量使用较小的列
<四> :频繁使用的字段加索引
<五> :避免使用select* 和 like 查询
<六> :数据量在百万级以上,使用分表查询,时时分割表
<七> :避免在索引列上使用计算,not ,in 等操作
<八> :当只需要一行数据的时候,使用limit
<九> :针对查询较慢的语句,可以使用explain来分析该语句具体的执行情况
字段优化
(一):能用小的,不用大的
(二):能用定长,不用变长
索引优化
(一):表的主键和外键,必须有索引
(二):数据量超过300的表应该有索引
(三):经常与其他表进行连接的字段上应该建立索引
(四):经常出现在Where语句中的字段,特别是大表的字段,建 立索引
(五):索引应建立在选择性能高的字段上
(六):索引应该建立在小字段上,对于大的文本字段甚至超长字段,不要建立索引
表的优化
<一>存储引擎:Myisam, InnoDB
区别:
(1):构成上的区别:
Myisam 在磁盘上存储成三个文件
.frm文件 存储表定义
数据文件 扩展名:.MYD
索引文件 扩展名:.MYI
InnoDB在磁盘上的资源是两个文件
表空间数据文件
日志文件
注意:表的大小只受限于操作系统文件的大小,一般为2GB
<二>:对锁的支持
Myisam支持表锁,InnoDB 支持行锁
<三>:事物处理方面
Myisam 类型的表强调的是性能,其执行速度比InnoDB更快,
但是不支持事物和外键
InooDB 提供事物,支持事物,外键等高级的数据库功能
<四>:对增 , 删 , 改 , 查的操作
Myisam :删,查
InnoDB :insert ,update
<五>:对Auto_Increment的操作
Myisam :按照写入顺序
InnoDB :主键自增长