MySQL优化手记
来源:互联网 发布:淘宝美工ps实例 编辑:程序博客网 时间:2024/05/22 04:55
数据太多了,近千万的数据导致数据库运行奇慢无比,所以迫在眉睫的问题是优化数据库。
在网上看了一些帖子,在结合自己的实践,整理一下记录在这里。
关于MySQL优化,主要分下面几个方面:
1. 硬件
换高性能的cpu,加内存。(目前还没到这个阶段,现在的配置还够用,所以这个优化没在考虑之列)
2. 操作系统
据说是MySQL在linux比在windows下运行的更快,俺没试验过,但是俺们用的是linux。
3.SQL服务器(设置和查询)
主要就是my文件的配置,查询缓存、表打开的最大数目、同时连接数、是否解析服务器名还是IP地址和服务器名都解析等等。具体的可以使用 show status 查看MySQL运行中的参数,以进行相关的设置。
4. 表类型的选择
根据自己的需求选择相应的数据库引擎。一般都是现在MyISAM或者InnoDB。
5.应用程序编程接口
5.1 使用持续的连接
5.2 不要查询应用中不需要的列,最好不用使用select * from table where...
5.3 对于where子句中的列(影响速度)建立索引,不推荐过多的建立索引,只建立有效的索引。不要在数据重复性很高的列上建立索引,比如:性别(男,女)字段上建立索引。
5.4 对表中的每个字段使用最有效的数据类型,比如:成绩字段,假如成绩的有效范围是0到100,就不要用int类型,用tinyint就已经足够了。
5.5 使用正确合适的数据类型,不要将数字存储为字符串。
5.6 如果可能,声明列为 NOT NULL。
5.7 在长char/vchar上建立索引时,不要建立full索引,应该选择合适的长度。
5.8 插入数据的时候,尽量使用一次插入多行。
5.9 联结一般比子查询速度快。
5.10 查询的时候如果满足条件的记录太多,记得使用limit。
5.11 少用通配符,通配符尽量不要用在开头。
5.12 学会使用explain, show processlist, show status, show variables。
上面是优化时的一些总结,多多交流。
- MySQL优化手记
- mysql手记
- U3D DrawCall优化手记
- [Unity3d]DrawCall优化手记
- [Unity3d]DrawCall优化手记
- oracle数据库优化手记
- U3D DrawCall优化手记
- MYSQL 源码安装手记
- MySQL手记001
- MySQL手记002
- Mysql操作手记
- MySQL操作手记
- MySQL学习手记
- mysql 手记 随笔
- MYSQL分区学习手记
- Mysql数据库简介手记
- MySQL安装手记
- UBUNTU安装及优化手记
- 在程序中执行命令行参数
- WebBrowser控件——设置滚动条位置
- API HOOK 金山词霸取词功能原理
- WebBrowser控件——使用COM组件经验
- 盲山带给我们的
- MySQL优化手记
- 设计模式 - Provider Pattern(提供者模式)
- 默默的生活-----喝酒
- 选择你所需要的Ajax框架
- 设计模式 - Singleton Pattern(单例模式)
- 网络安全——iptable
- 与编程无关
- 黑金道
- 可以下载了 完整的源码