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 取决于成员数量

转载于:https://www.cnblogs.com/freespider/archive/2010/08/23/1806254.html

提高mysql数据库速度方法(转)相关推荐

  1. mysql数据备份方法_最快的MySql数据库备份方法

    最快的MySql数据库备份方法 使用MYSQL进行数据库备份,又很正规的数据库备份方法,同其他的数据库服务器有相同的概念,但有没有想过,MySQL会有更简捷的使用文件目录的备份方法,而且又快有好. 一 ...

  2. 6条策略提高mysql查询速度 潇湘博客

    6条策略提高mysql查询速度 1,表设计一定要优化,冗余数据最少,少用连接查询.如果在实际应用中,使用了极其复杂的连接,子查询,则数据表的设计得要重新考虑了. 2,尽量用char而不是varchar ...

  3. 提高MySQL数据库查询效率的几个技巧(转载)

    [size=5][color=Red]提高MySQL数据库查询效率的几个技巧(转)[/color][/size]       MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用. ...

  4. MYSQL数据库备份方法及策略

    MYSQL数据库备份方法及策略 前言 Xtrabackup实战 Percona-xtrabackup 备份实战 ( 1 ) 官网下载Percona-Xtrabackup ( 2 )Percona-xt ...

  5. .net连接mysql数据_.net连接MYSQL数据库的方法及示例!

    连接MYSQL数据库的方法及示例 方法一: 使用MYSQL推出的MySQL Connector/Net is an ADO.NET driver for MySQL 该组件为MYSQL为ADO.NET ...

  6. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享

    Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...

  7. c# mysql executescalar_C# 操作MySQL数据库, ExecuteScalar()方法执行T-SQL语句, COUNT(*), 统计数据...

    C# 操作My SQL数据库需要引用"MySql.Data", 可通过两种方式获取. 1.从NuGet下载"Install-Package MySql.Data -Ver ...

  8. mac php 连接mysql数据库_Mac环境下php操作mysql数据库的方法分享_PHP教程

    Mac环境下php操作mysql数据库的方法分享 今天在mac上搭建好了php的环境,我们就把php操作mysql数据库的方法分享给大家,有需要的小伙伴参考下. Mac本地环境搭建 在Mac系统,我们 ...

  9. mysql打包备份数据到_thinkPHP使用pclzip打包备份mysql数据库的方法

    本文实例讲述了thinkPHP使用pclzip打包备份mysql数据库的方法.分享给大家供大家参考,具体如下: PclZip介绍 PclZip library能够压缩与解压缩Zip格式的压缩档(Win ...

最新文章

  1. 清华首批7门标杆课程,到底有多牛?
  2. 千万级、百万级数据删除优化
  3. ***大赛结果,名企员工缺乏安全意识
  4. 字符数据类型转换代码
  5. Apache Mesos:编写您自己的分布式框架
  6. 常用代码生成工具介绍
  7. TiDB 在平安核心系统的引入及应用
  8. pycharm关闭pytest模式
  9. 如何解决SQL2008r2 登录不上的问题
  10. 计算机的清楚键盘是,电脑键盘上按哪个键是删除键?
  11. Office卸载不干净,注册表项权限修改后仍然无法删除的问题
  12. 网摘:漫谈law、equity、act、statute、code、bill等法律英语词汇
  13. 哪个版本的gcc才支持c11
  14. @@identity
  15. 蓝桥杯单片机第七届省赛-模拟风扇控制系统
  16. 25岁同济硕士生斩获中国首个CVPR最佳学生论文奖,他还是个「赛车发烧友」
  17. 上班第一天的报错(AWVS卸载不彻底)
  18. 在计算机上怎么搜共享打印机,如何共享打印机,在其他电脑上怎么找到的?
  19. 变分自编码器的推导,VAE的推导,ELBO|证据下界|训练方法
  20. Unity3D游戏美术全攻略:从入门到精通

热门文章

  1. python爬取天气预报并发送短信_Python3爬虫教程之利用Python实现发送天气预报邮件...
  2. 【编译器】VSCode配置Go语言开发环境
  3. 【w3cschool】正则表达式基础语法
  4. 第十八届浙大城市学院程序设计竞赛(同步赛)签到题ABDFGJL
  5. 【CCCC】L3-014 周游世界 (30分),,DFS搜索最短路,路径打印
  6. 【服务器】宝塔LNMP安装Discuz!
  7. 电大计算机专业毕业自我鉴定,电大毕业生计算机专业自我鉴定
  8. [蓝桥杯]试题 基础练习 Sine之舞
  9. [蓝桥杯]基础练习 特殊回文数
  10. 递归算法设计 —— 选择排序和冒泡排序