数据库优化
来源:互联网 发布:淘宝开店信用卡套现 编辑:程序博客网 时间:2024/05/25 08:12
1.SQL上的优化
(1)尽量在子查询中增加过滤条件
比如:
create table person1( id int, name varchar(50), age int);create table person2( id int, name varchar(50), age int);不推荐:SELECT * FROM person1 WHERE id in( SELECT id FROM person2) AND age > ?;推荐:SELECT * FROM person1 WHERE id in( SELECT id FROM person2 WHERE age > ?);
(2)使用explain查看sql的详细信息。
比如 explain select * from person1 \G
\G表示显示竖版。
显示的一些详细参数,仔细研究后再补充。
(3)数据量大的时候需要避免扫描过多的记录,有以下几点需要注意:
a.建立合适的索引,比如在order by,where,group by,on从句等等上出现的字段。
b.索引字段越小越好。
c.离散度大的列放在联合索引前面。离散度大的指的是数值多样性多的。而联合索引类似(id1,id2)。
d.避免重复索引和冗余索引。
2.数据库表结构的优化
(1)int比varchar类型在mysql上处理简单。
(2)尽量存储数据的最小数据类型。
(3)少用text类型,若使用,单独用一张表存储。
(4)尽可能使用not null,设置默认值。
(5)数据库范式能够减少字段的冗余,但是适当情况下可以考虑反范式,以空间换时间。
(6)数据库的水平拆分:解决数据库单表数据量过多,将一张表水平拆分成多张表,遇到的问题:怎么在多张表中查询数据。
(7)数据库的垂直拆分:把原来一张表的列拆分,解决表的列的数量过多的问题。原则:常使用的列放在一个表,不常使用的列放在一张表,text字段单独放在一张表。
阅读全文
0 0
- 优化数据库
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 优化数据库
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 优化数据库
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 数据库优化
- 多媒体
- 左神第七讲-代码C++实现(后四道题)
- 【安卓学习笔记】JAVA基础Lesson10-抽象类和抽象函数
- React Native 之 网络请求 fetch
- Bootstrap组件学习笔记(六)——页头、缩略图和警告框
- 数据库优化
- Spring Cloud
- 写程序的一点感受
- PAT--1019. General Palindromic Number
- windows下忘记mysql的root用户密码,重置
- B. New Year Present----构造
- SpringBoot详解(一)-快速入门
- 小米路由器青春版刷Padavan固件
- Unity LLAPI 底层Native插件在x86 (32bit) 下编译的一点注意