我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql数据库优化语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql数据库优化语句

本篇内容主要讲解“mysql数据库优化语句”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据库优化语句”吧!

mysql优化语句
 
数据库语句:
 
    Ddl(数据定义语言)    alter  create   drop
   
    Dml(数据操作语言)   inset  delete  update
 
    Dtl(数据事务语言)  conmmit  rollback   savepoint
 
    Select
 
    Dcl(数据控制语句) grant赋权限  revoke回收
   
Mysql数据库优化:
 
1、  数据库表 要设计合理(符合3NF,有时候也需要适当的逆范式)
2、  Sql语句的优化(索引,常用小技巧)
3、  数据库的配置
4、  适当的硬件配置和操作系统
5、  读写分离
   
问:什么是数据库3范式?
    1NF: 就是具有原子性,不可分割(只要使用的是关系型数据库,就会自动符合)
   2NF: 在满足1NF的基础上,我们考虑是否满足2NF,只要表的记录满足唯一性,也就是说,你的同一张表中不可能出现完全相同的记录,一般说我们在表中设计一个主键即可。
   3NF: 在满足2NF: 的基础上,我们考虑是否满足3NF,既我们的字段信息可以通过关联的关系,派生即可(通常我们通过外键来处理)使用外键数据库的存储引擎必须是innoDB
 
问2:数据库参数配置
      对于innodb存储引擎最重要的就是内存,所以下面的两个参数调的很大
          Innodb_additional_mem_pool_size = 64M    www.2cto.com  
          Innodb_buffer_pool_size = 1G     缓冲池大小
     对于myisam,需要调整key_buffer_size
           用show  status 语句可以看到当前状态,以决定调整那些参数
            
一、显示你使用过多少次insert  , update   ,  delete 等
Sql:    show status  like  “Com”;
              //在命令窗口中不关闭的时候查询会准确,如果关闭就会从新开始统计
              Show sessionstatus like “Com_update”;
              //就算关闭窗口也会将全部的你执行过的次数统计出来
              Show globalstatus like “Com_insert”;
 
Example:  session   
                     假如已经使用了6次update
1、  用session统计 会是6次
如果关闭后命令窗口后在执行Show session statuslike “Com_update”;  就为0了
2、  但是如果用Show global status like “Com_insert”;就是6次
 
二、显示试图连接Mysql服务器的次数
              Show  status like  “Connections”;
 
    数据库启动多长时间了
              Show  status like   “uptime”;
      
       显示慢查询多少次(默认是10秒)
              Show  status like  “Slow_queries”;
 
四、如何在一个项目中,找到慢查询的select,数据库支持把慢查询的语句记录到日志中,供程序员来分析  www.2cto.com  
       步骤:
1、 启动mysql(特殊的启动方式)
a)        在mysql的安装目录下的bin目录下启动mysqld.exe –slow-query
b)       Netstat –an 查看3306端口是否启动
c)        查询慢查询的次数   show status  like  “Slow_queries”;
d)       设置慢查询的时间   set long_query_time=1;
 
   索引优化:
 
比如说增加主键索引
              Alter  table user   add  primary key(id); 
删除主键索引
              Alter  table user  drop  primary key
删除索引
       Alter  table  user drop  index   索引名
显示索引
        Show  index(es)  from  表名
         Show  keys  from  表名
         Desc  表名
   增加索引致使查询会变快好多,其原理就像一本书如果没有目录的话那么如果你想找一个知识点会很难找到,只能一点一点的翻着找,如果有目录的话会很快的定位到这个知识点在那个章节中大概什么位置这样查询起来自然就会快了啊,但是有利必有弊,索引会对查询带来好处,但是对add   update   delete  来说自然就很麻烦了,比如说你添加一个知识点,你不许还有在目录中添加他是属于那章那节中的那个知识点,同样在修改和删除的时候也会随之改变,来保持信息的准确性。
       
                                                                                                                 
 
一个自动分析是否需要使用索引的命令:explain
Example:  explain  select  *  from emp   where   id  =   9;

 
索引的分类:
         主键索引(primary   key)
         唯一键索引(unique)
         Index(普通索引)
         全文索引(fulltext)
         复合索引(多列和在一起) 
在那些列上添加索引比较合适:
1、比较频繁的作为查询条件的字段应该加上索引
2、  唯一性比较差的字段不适合单独创建索引,及时频繁作为查询条件
3、  更新非常频繁的字段不适合创建索引
4、  不会出现在where子句中的字段不该创建索引
 
查询一个表中的所有索引: show  indexes   from  table(表名)               
 
        索引的使用:
             查询要使用索引最重要的条件是查询条件中需要使用索引
             以下几种情况可能会使用到索引
1、  对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用
2、  对于使用like的查询,查询如果是‘%aaa’不会使用到索引‘aaa%’会使用到索引
             以下的表中将不使用索引
1、  如果条件中有or,即使其中有条件带索引也不会使用
2、  对于多列索引,不是使用的第一部分,则不会使用索引
3、  Like查询是以%开头
4、  如果列类型是字符串,那么一定要在条件中将数据使用引号引起来,否则不使用索引。
5、  如果mysql估计使用全表扫描要比使用索引快,则不使用索引。
 
 
查看索引的使用情况
     Show status  like   ‘handler_read%’;

 
只有handler_read_key  越大越好
     Handler_read_rnd_next  越小越好
 
 数据库类型:
             MyISAM  不支持事务和外键,一张表由三个文件组成,.frm  .myi  .myd
             innoDB    支持事务和外键   
            
             对于MyISAM来说查询快,不过删除字段时空间是不会释放的,必须使用手动释放        optimize   table  table_name 
 

到此,相信大家对“mysql数据库优化语句”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql数据库优化语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL数据库的SQL语句优化方法

1、使用 show status 了解各种 SQL 的执行频率mysql> show status like "Com%";该命令可以查询 sql 命令的执行次数。2、定位执行效率较低的 SQL 语句定位执行效率较低的 SQL 一般有两种方法:通过慢查询日志定
MySQL数据库的SQL语句优化方法
2021-06-02

如何优化MySQL数据库中的SQL语句性能?

如何优化MySQL数据库中的SQL语句性能?概述:MySQL是目前最常用的关系型数据库管理系统之一,它的性能影响着许多应用程序的运行效率。在开发和维护MySQL数据库时,优化SQL语句的性能是至关重要的。本文将介绍一些优化MySQL数据库中
如何优化MySQL数据库中的SQL语句性能?
2023-12-17

MySQL中如何优化查询语句和数据库性能

MySQL中优化查询语句和数据库性能可以采取以下措施:使用合适的索引:为经常查询的列创建索引,可以加快查询速度。但要注意不要过度索引,因为索引会增加写操作的开销。避免使用SELECT :尽量避免使用SELECT ,只查询需要的列。这样可以
MySQL中如何优化查询语句和数据库性能
2024-04-09

MySQL数据库优化

数据库优化数据库优化分为以下几个大类:SQL语句优化事务优化表结构优化使用缓存和NoSQL数据库方式存储,如MongoDB/Memcached/Redis来缓解高并发下的数据库查询的压力减少数据库操作次数,尽量使用数据库访问驱动的批处理方法不常使用的数据迁移备
MySQL数据库优化
2021-10-15
MySql数据库语句用法
2020-02-11

MySQL之优化SELECT语句

MySQL之优化SELECT语句 文章目录 MySQL之优化SELECT语句摘要:引言:1. MySQL性能提成优化概述2. WHERE子句优化3. 范围优化4. 哈希联接优化5. 储存引擎下的优化6. 索引条件下推优化7.嵌套循环
2023-08-16

编程热搜

目录