性能优化
1. 表设计合理化,尽量满足三范式
2. 添加适当索引 [四种: 普通索引、主键索引、唯一索引、全文索引]
较频繁的作为查询条件字段应该创建索引;
唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件;
更新非常频繁的字段不适合创建索引
不会出现在WHERE子句中的字段不该创建索引
3.分表技术(水平分割、垂直分割);
1.垂直拆分:如果表中某些列常用,另一些不常用,则把主键和常用列,不常用列各划分成一张表:
2.水平拆分:根据一列或多列数据的值吧数据行放到第二个独立的表中.
4.读写分离[主从复制];
5.存储过程 [模块化编程,可以提高速度];
6.对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ];
7.mysql服务器硬件升级;
8.定时的去清除不需要的数据,定时进行碎片整理(MyISAM)。
SQL语句优化
1.通过explain来查看sql语句的执行效果[加在select前面]
2.避免使用select *
3.尽量使用limit限制返回的行数.
问:如果有一个特别大的访问量到数据库上,怎么优化
1.一些查询优化,见上面
2.主从复制,读写分离,负载均衡
3.数据库分表,分区,分库
4.对于热点数据,采用redis缓存.
网友评论