Mysql数据库的优化技术
来源:互联网 发布:java启动exe程序 cmd 编辑:程序博客网 时间:2024/06/05 07:47
一、表的设计合理化(符合3NF)
1NF: 即表的列的具有原子性,不可再分解,即列的信息,不能分解, 只要数据库是关系型数据库(mysql/oracle/db2/informix/sysbase/sql server),就自动的满足1NF
2NF: 表中的记录是唯一的, 就满足2NF, 通常我们设计一个主键来实现
3NF: 即表中不要有冗余数据, 就是说,表的信息,如果能够被推导出来,就不应该单独的设计一个字段来存放.
反3NF : 但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。
二、sql优化
定为慢查询:
1、set long_query_time=1 ; //可以修改慢查询时间
2、SET GLOBAL slow_query_log = ON; //开启慢查询日志
三、添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]
1、主键索引添加
当一张表,把某个列设为主键的时候,则该列就是主键索引
2、普通索引3、全文索引
1. 在mysql中fulltext 索引只针对 myisam生效
2. mysql自己提供的fulltext针对英文生效->sphinx (coreseek) 技术处理中文
3. 使用方法是 match(字段名..) against(‘关键字’)
4、唯一索引
①当表的某列被指定为unique约束时,这列就是一个唯一索引
为什么创建索引后,速度就会变快?
原理示意图:
索引使用的注意事项
索引的代价:
1.占用磁盘空间
2.对dml操作有影响,变慢(一般一个网站查询语句跟增删改的比例为9:1)
在哪些列上适合添加索引?
总结: 满足以下条件的字段,才应该创建索引.
a: 肯定在where条经常使用
b: 该字段的内容不是唯一的几个值(sex)
c: 字段内容不是频繁变化.
使用索引的注意事项:
1、对于使用like的查询,查询如果是 ‘%aaa’ 不会使用到索引‘aaa%’ 会使用到索引。
四、定时的去清除不需要的数据,定时进行碎片整理(MyISAM)
五、读写[写: update/delete/add]分离
六、对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ]
- MySQL数据库的优化技术
- Mysql数据库的优化技术
- Mysql数据库的优化技术
- MySQL数据库的优化技术
- Mysql数据库的优化技术
- Mysql数据库优化技术
- MYSQL数据库优化技术
- Mysql数据库的优化技术方面
- 1.Mysql数据库的优化技术(1)
- Mysql数据库的优化技术(1)
- Mysql数据库的优化技术(2)
- [MySQL] 实例讲解MYSQL数据库的查询优化技术
- mysql数据库优化技术(1)
- mysql数据库优化技术(2)
- 浅谈mysql数据库优化技术
- 实例讲解MySQL数据库的查询优化技术
- 实例讲解MYSQL数据库的查询优化技术
- 实例讲解MYSQL数据库的查询优化技术
- iOS开发之性能调试Instruments(二)
- 每天一个linux命令(16):which命令
- 程序设计实训项目一 小学生考试系统
- web前端开发培训和自学 哪种选择更适合你
- HPUoj问题 J: KACA的围棋入门(DFS)
- Mysql数据库的优化技术
- 读书笔记-程序员的职业素养
- Java异常处理和设计
- Linux环境下virtualenv安装和使用
- Linux命令学习笔记之grep
- 微信小程序之tabbar
- java关于数组之间的相互赋值
- 导入环信3.x SDK和EaseUI以及遇到的问题
- Java Web(一)用户注册页面的简单实现