提高mysql数据库速度方法

1. 从数据库结构做起
1. 字段类型的定义时遵循以下规则:
1. 选用字段长度最小
2. 优先使用定长型
3. 尽可能的定义 "NOT NULL"
4. 数值型字段中避免使用 "ZEROFILL"
5. 如果要储存的数据为字符串, 且可能值已知且有限, 优先使用 enum 或 set 2. 索引的优化至关重要(以下如果没有特殊说明, 均指查询密集的情况)
1. 被索引的字段的长度越小, 该索引的效率越高
2. 被索引的字段中, 值的重复越少, 该索引的效率越高
3. 查询语句中, 如果使用了 "group" 子句, 根据其中字段出现的先后顺序建立多字段索引
4. 查询语句中, 如果使用了 "distinct", 根据其中字段出现的先后顺序建立多字段索引
5. "where" 子句中, 出现对同一表中多个不同字段的 "and" 条件时, 按照字段出现的先后顺序建立多字段索引
6. "where" 子句中, 出现对同一表中多个不同字段的 "or" 条件时, 对重复值最少的字段建立单字段索引
7. 进行 "内/外连接" 查询时, 对 "连接字段" 建立索引
8. 对 "主键" 的 "unique" 索引 毫无意义, 不要使用
9. 被索引字段尽可能的使用 "NOT NULL" 属性
10. 对写入密集型表, 尽量减少索引, 尤其是 "多字段索引" 和 "unique" 索引
2. 查询语句的优化1. 多多利用 "explain" 查询索引使用情况, 以便找出最佳的查询语句写法和索引设置方案
2. 慎用 "select *", 查询时只选出必须字段
3. 查询使用索引时, 所遍历的索引条数越少, 索引字段长度越小, 查询效率越高 (可使用 "explain" 查询索引使用情况)

4. 避免使用 mysql 函数对查询结果进行处理, 将这些处理交给客户端程序负责
5. 使用 "limit" 时候, 尽量使 "limit" 出的部分位于整个结果集的前部, 这样的查询速度更快, 系统资源开销更低
6. 在 "where" 子句中使用多个字段的 "and" 条件时, 各个字段出现的先后顺序要与多字段索引中的顺序相符
7. 在 "where" 子句 中使用 "like" 时, 只有当通配符不出现在条件的最左端时才会使用索引
8. 在 mysql 4.1 以上版本中, 避免使用子查询, 尽量使用 "内/外连接" 实现此功能
9. 减少函数的使用, 如果可能的话, 尽量用单纯的表达式来代替
10. 避免在 "where" 子句中, 对不同字段进行 "or" 条件查询, 将其拆分成多个单一字段的查询语句效率更高。

附: Mysql 字段长度说明表
Mysql 字段长度说明TINYINT1 字节SMALLINT2 字节MEDIUMINT3 字节INTEGER:4 字节BIGINT8 字节DOUBLE8 字节FLOAT(X)X <=24: 4 字节
X > 24: 8 字节DECIMAL(M,D)MM>=D: M 字节DATE3 字节DATETIME8 字节TIMESTAMP4 字节TIME4 字节YEAR1 字节 CHAR(M)M 字节VARCHAR(M)值长度 + 1 字节TINYBLOB值长度 + 1 字节TINYTEXT值长度 + 1 字节BLOB值长度 + 2 字节TEXT值长度 + 2 字节MEDIUMBLOB值长度 + 3 字节MEDIUMTEXT值长度 + 3 字节LONGBLOB值长度 + 4 字节LONGTEXT值长度 + 4 字节ENUM1 或 2 字节
取决于枚举值数SET1,2,3,4, 8
取决于成员数量

时间: 2024-08-03 23:40:34

提高mysql数据库速度方法的相关文章

优化mysql数据库的方法

优化mysql数据库的方法 在一个数据库中创建大量的表,那么执行打开,关闭,创建(表)的操作就会很慢. 2:mysql使用内存 a: 关键字缓存区(key_buffer_size)由所有线程共享 b: 每个连接使用一些特定的线程空间.一个栈(默认为64k,变量thread_stack),一个连接缓冲区(变量net_buffer_length)和一个结果缓冲区(net_buffer_length).特定情况下,连接缓冲区和结果缓冲区被动态扩大到max_allowed_packet. c:所有线程共

.net连接MYSQL数据库的方法及示例

.net 连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL,下面提供最新版的下载 http://www.weiqisj.cn/mysql-connector-net-6.0.2.zip 该组件为MYSQL为ADO.NET访问MYSQL数据库设计的.NET访问组件. 安装完成该组件后,引用命名空间MySql.Data.MySqlClient; 使用命令行编译时:csc /r:MySq

Mac环境下php操作mysql数据库的方法分享

  今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们可以使用MAMP Pro 软件来搭建本地服务器.安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点. mac系统下安装php,两行即可. ? 1 2 brew tap jo

php导入excel文件到mysql数据库的方法

 这篇文章主要介绍了php导入excel文件到mysql数据库的方法,分析了phpexcel类操作excel文件的技巧及导入数据库的方法,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php导入excel文件到mysql数据库的方法.分享给大家供大家参考.具体分析如下: php导入excel文件入mysql数据库我们是需一借助一个phpexcel类文件了,有了这个类文件我们就可以快速简单的导入excel到mysql数据库中,这里就来举个例子给大家说明一下具体用法. 导入前我们

php上传文件并存储到mysql数据库的方法

 这篇文章主要介绍了php上传文件并存储到mysql数据库的方法,以完整实例形式较为详细的分析了php操作文件上传与数据库存储的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php上传文件并存储到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 下面的代码分别用于创建mysql表和上传文件保存到mysql数据库 创建mysql表: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <?php $con = mysql_connect(&quo

监控mysql-求一个监控MYSQL数据库的方法

问题描述 求一个监控MYSQL数据库的方法 要求是JAVA写的,运行后显示数据库的信息.如连接数..

查看mysql数据库版本方法总结

当你接手某个mysql数据库管理时,首先你需要查看维护的mysql数据库版 本:当开发人员问你mysql数据库版本时,而恰好你又遗忘了,那么此时也需要去查看mysql数据库的版本...............下文总结一下 Linux平台下查看mysql数据库的方法.个人觉得总结的比较全面了.   方法1:登录数据库时,你可以看到对应mysql数据库的版本信息,如下所示:   [root@DB-Server ~]# mysql -u root -p Enter password: Welcome

thinkPHP使用pclzip打包备份mysql数据库的方法_php实例

本文实例讲述了thinkPHP使用pclzip打包备份mysql数据库的方法.分享给大家供大家参考,具体如下: PclZip介绍 PclZip library能够压缩与解压缩Zip格式的压缩档(WinZip.PKZIP);且能对此类类档案进行处理,包括产生压缩档.列出压缩档的内容以及解压缩档案等等 数据库备份是一件非常重要的事情,备份的方式也很多有的通过vps直接进行备份.有的通过phpmyadmin进行数据进行备份.小编觉得这些该麻烦了并且备份好的.sql文件过于太大占用了一定的空间.所以用p

php将access数据库转换到mysql数据库的方法_php技巧

本文实例讲述了php将access数据库转换到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 本人采集来的数据是ACCESS的,但我的程序是mysql的,故写了一个程序,程序三步走,分享一下,喜欢操作数据库的朋友应该都会用到的. 1.连接mysql,代码如下: 复制代码 代码如下: $dbhost="localhost:3307";//服务器  $db="dataname";//数据库  $dbuser="root";//用户名