mysql优化总结
来源:互联网 发布:淘宝摄影培训班 编辑:程序博客网 时间:2024/05/17 23:23
sql语句优化
1 查询尽量使用到索引,避免全表扫描
2 尽量避免无法使用索引而全表扫描的操作,如:数字与字符之间做等值、使用%s%和%s模糊查询、使用!=或<>操作符、使用 or 来连接条件、in 和 not in 也要慎用、where 子句中对字段进行表达式和函数操作、没有使用复合索引的前缀索引等。
(在某些情况下,or条件可以避免全表扫描的。1where 语句里面如果带有or条件, myisam表能用到索引, innodb不行2 .必须所有的or条件都必须是独立索引)
3 避免索引冗余,也不要建立过多索引,推荐索引个数不要超过7个
4 应尽量避免在 where子句中对字段进行 null值判断
5 不要使用select *取所有字段
6 insert要指明字段名
7 尽量避免大事务操作,提高系统并发能力
8 join表不推荐超过2个,JOIN表越多,性能消耗越大,系统并发能力越低
表优化
9 推荐使用InnoDB表(并发读写性况下好于MyISAM、支持事务、表不易损坏),使用单列自增主键(递增与InnoDB本身数据的存储原理相契合,有利于数据的顺序存储及读取,更好的避免插入过程中的数据分页)
10 字段及表必须要有COMMENT
11 字段及表名不要使用关键字
12 字段设置为非NULL
13 字段类型:varchar代替char,时间使用uint,ip使用uint,不推荐使用BLOB,TEXT等大字段
14 拆分大表
15 不推荐使用MySQL本身不擅长或有性能问题的功能,如:触发器(Triger) 、存储过程(Procedure)、外键(Foreign Key)、函数(Function)、视图(Views)、事件(Event)等,主要原因在于与业务耦合太大,或是某些场景下可能造成主从不一致,或是不利于线上追查问题,或是不利于统一运维等。
其他
16删除表中的所有记录,应使用TRUNCATETABLE语句
17 使用count(*)计数
18 优化order by语句,MySQL的弱点之一是它的排序。虽然MySQL可以在1秒中查询大约15,000条记录,但由于MySQL在查询时最多只能使用一个索引。因此,如果WHERE条件已经占用了索引,那么在排序中就不使用索引了,这将大大降低查询的速度。建立适当的复合索引可以解决这个问题
- 总结MYSQL的优化
- 总结MYSQL的优化
- MySQL优化总结
- 总结MYSQL的优化
- MYSQL Replication优化总结
- mysql 优化总结
- mysql优化总结
- mysql 优化总结
- 总结MYSQL的优化
- mysql优化实践总结
- MySQL数据库优化总结
- mysql优化总结
- MYSQL 优化总结
- Mysql数据库优化总结
- MySQL数据库优化总结
- MySQL数据库优化总结
- mysql优化实践总结
- MySQL数据库优化总结
- [Leetcode]167. Two Sum II - Input array is sorted
- $.ajax({});的各个参数的理解
- 6款漂亮HTML CSS样式用户留言表单
- django SHELL方式插入数据
- innodb和myisam表排序
- mysql优化总结
- 基于qualcomm平台的Camera Bring up
- 微信开发流程
- 教你轻松计算AOE网关键路径
- FreeRTOS实验_线程安全和中断安全printf方式
- 安卓基本属性
- JAVA虚拟机内存
- Java设计模式之四-- 工厂模式(从卖肉夹馍说起)
- UItableview向下偏移64还有间距问题