位置: 编程技术 - 正文

Mysql数据库性能优化二(mysql数据库性能优化方法有哪些)

编辑:rootadmin

推荐整理分享Mysql数据库性能优化二(mysql数据库性能优化方法有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql数据库性能调优,mysql数据库性能监控工具,MySQL数据库性能监控及调优,mysql数据库性能监控,mysql数据库性能指标,MySQL数据库性能优化,MySQL数据库性能诊断产品DBdoctor介绍,MySQL数据库性能监控及调优,内容如对您有帮助,希望把文章链接给更多的朋友!

在上篇文章给大家介绍了mysql数据库性能优化一,今天继续接着上篇文章给大家介绍数据库性能优化相关知识。具体内容如下所示:

建立适当的索引

说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,只要执行个正确的'create index',查询速度就可能提高百倍千倍,这可真有诱惑力。可是天下没有免费的午餐,查询速度的提高是以插入、更新、删除的速度为代价的,这些写操作,增加了大量的I/O。

是不是建立一个索引就能解决所有的问题&#;ename上没有建立索引会怎样&#;

---测试案例命令如下 (最好以 select * from emp e,dept d where e.empno= )

*添加主键

*删除主键

索引的原理说明

没有索引为什么会慢&#;

使用索引为什么会快&#;

索引的代价

1、磁盘占用

2、对dml(update delete insert)语句的效率影响

btree 方式检索,算法复杂度: log2N 次数

哪些列上适合添加索引

1、较频繁的作为查询条件字段应该创建索引

2、唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

3、更新非常频繁的字段不适合创建索引

4、不会出现在WHERE子句中的字段不该创建索引

索引的类型

&#;主键索引,主键自动的为主索引 (类型Primary)

&#;唯一索引 (UNIQUE)

&#;普通索引 (INDEX)

&#;全文索引 (FULLTEXT) [适用于MyISAM] ——》sphinx + 中文分词 coreseek [sphinx 的中文版 ]

&#;综合使用=>复合索引

简述mysql四种索引的区别

lPRIMARY 索引 =》在主键上自动创建

lUNIQUE 索引=> 只要是UNiQUE 就是Unique索引.(只能在字段内容不重复的情况下,才能创建唯一索引)

lINDEX 索引=>就是普通索引

lFULLTEXT => 只在MYISAM 存储引擎支持, 目的是全文索引,在内容系统中用的多, 在全英文网站用多(英文词独立). 中文数据不常用,意义不大,国内全文索引通常使用 sphinx来完成,全文索引只能在 char varchar text字段创建.

全文索引案例

1.创建表

2.建立全文索引

3.插入数据

这里要注意,对于常见的英文 fulltext 不会匹配,而且插入的语句本身是正确的.

4.看看匹配度

0表示没有匹配到,或者你的词是停止词,是不会建立索引的.

使用全文索引,不能使用like语句,这样就不会使用到全文索引了.

复合索引

索引的使用

建立索引

删除索引

查询索引(均可)

修改索引,我们一般是先删除在重新创建.

查询要使用索引最重要的条件是查询条件中需要使用索引。

下列几种情况下有可能使用到索引:

1,对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用。

2,对于使用like的查询,查询如果是 '%aaa' 不会使用到索引, 'aaa%' 会使用到索引。

下列的表将不使用索引:

1,如果条件中有or,即使其中有条件带索引也不会使用。

2,对于多列索引,不是使用的第一部分,则不会使用索引。

Mysql数据库性能优化二(mysql数据库性能优化方法有哪些)

3,like查询是以%开头

4,如果列类型是字符串,那一定要在条件中将数据使用引号引用起来。否则不使用索引。(添加时,字符串必须'')

5,如果mysql估计使用全表扫描要比使用索引快,则不使用索引。

测试案例(就在前面的dept表上做演示.)

添加一个主键索引

--测试语句

结果是:

--创建多列索引

--证明对于创建的多列索引,只要查询条件使用了最左边的列,索引一般就会被使用

--对于使用like的查询

--如果条件中有or,即使其中有条件带索引也不会使用

--为了演示,我们把复合索引删除,然后只在dname上加入索引.

--如果列类型是字符串,那一定要在条件中将数据使用引号引用起来。否则不使用索引

查看索引的使用情况

大家可以注意:

handler_read_key:这个值越高越好,越高表示使用索引查询到的次数。

handler_read_rnd_next:这个值越高,说明查询低效。

* 这时我们会看到handler_read_rnd_next值很高,为什么,这是因为我们前面没有加索引的时候,做过多次查询的原因.

常用SQL优化

大批量插入数据(MySql管理员) 了解

对于MyISAM:

对于Innodb:

1,将要导入的数据按照主键排序

2,set unique_checks=0,关闭唯一性校验。

3,set autocommit=0,关闭自动提交。

优化group by 语句

默认情况,MySQL对所有的group by col1,col2进行排序。这与在查询中指定order by col1, col2类似。如果查询中包括group by但用户想要避免排序结果的消耗,则可以使用order by

null禁止排序

有些情况下,可以使用连接来替代子查询。

因为使用join,MySQL不需要在内存中创建临时表。(讲解)

如果想要在含有or的查询语句中利用索引,则or之间的每个条件列都必须用到索引,如果没有索引,则应该考虑增加索引(与环境相关 讲解)

***有些情况下,可以使用连接来替代子查询。因为使用join,MySQL不需要在内存中创建临时表

和下面比较就可以说明问题!!

选择合适的存储引擎

MyISAM:默认的MySQL存储引擎。如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性要求不是很高。其优势是访问的速度快。

InnoDB:提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM,写的处理效率差一些并且会占用更多的磁盘空间。

Memory:数据存在内存中,服务重启时,数据丢失

MyISAM: 在插入数据时,默认放在最后. ,删除数据后,空间不回收.(不支持事务和外键)

InnoDB 支持事务和外键

对应我们程序员说,常用的存储引擎主要是 myisam / innodb / memory,heap 表

如果选用小原则:

1.如果追求速度,不在乎数据是否一直把保存,也不考虑事务,请选择 memory 比如存放用户在线状态.

2.如果表的数据要持久保存,应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性要求不是很高。选用MyISAM

3.如果需要数据持久保存,并提供了具有提交、回滚和崩溃恢复能力的事务安全,请选用Innodb

选择合适的数据类型

在精度要求高的应用中,建议使用定点数来存储数值,以保证结果的准确性。deciaml 不要用float

对于存储引擎是MyISAM的数据库,如果经常做删除和修改记录的操作,要定时执行optimize table table_name;功能对表进行碎片整理。

日期类型要根据实际需要选择能够满足应用的最小存储的早期类型

对于使用浮点数和定点数的案例说明

对于optimize table 表名 演示

定期执行 optimize table temp2 发现表大小变化,碎片整理完毕

&&对于InnoDB它的数据会存在data/ibdata1目录下,在data/数据库/只有一个 *.frm表结构文件.

关于mysql数据库性能优化二小编就给大家介绍到这里,希望对大家有所帮助!

Mysql创建通用设备管理信息系统数据库 下面通过图文并茂的方式给大家介绍通用设备管理信息系统数据库的创建过程,具体详情请看下文。设备表:id,名称,类别,型号,投运日期,购入日

MySQL中数据类型的验证 CHARchar(M)M字符,长度是M*字符编码长度,M最大。验证如下:mysqlcreatetablet1(namechar())defaultcharset=utf8;ERROR():Columnlengthtoobigforcolumn'name'(max=);useBLO

MySQL入门教程(五)之表的创建、修改和删除 MySQL为关系型数据库(RelationalDatabaseManagementSystem),这种所谓的"关系型"可以理解为"表格"的概念,一个关系型数据库由一个或数个表格组成。表是DB存储数据

标签: mysql数据库性能优化方法有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/321262.html 转载请保留说明!

上一篇:Mysql数据库性能优化一(MySQL数据库性能优化)

下一篇:Mysql创建通用设备管理信息系统数据库

  • 所得税费用会计分录
  • 即征即退需要缴纳税款吗
  • 印花税的分录如何做
  • 财务软件按什么排序
  • 核销 坏账
  • 租土地使用权建房
  • 银行承兑汇票和支票的区别
  • 印花税应计入什么账户
  • 专家评审费属于劳务费吗
  • 贴现利息应计入什么费用
  • 发票专用章盖在收据上有法律效益
  • 小规模纳税人教育费附加和地方教育费附加减免
  • 受托代销商品和受托代销商品款怎么列示
  • 个人劳务费 税
  • 服务性单位从事的是餐饮中介服务
  • 营改增后甲供材如何扣除
  • 员工借款会计分录
  • 未开票确认收入分录怎么做
  • 付款然后付的手续费如何做账?
  • 应收而未收的装修款如何做账务处理?
  • 出口用的增值税税率
  • 按折现率计算现值
  • 哪些人可以享受长护险
  • 电子发票已缴税怎么查
  • 企业会计准则规定我国企业的会计期间按年度划分
  • 购买汽车可以开普通发票吗
  • 顶账物品都有哪些
  • win7系统管理员密码忘了怎么办
  • 第三方检测公司有前途吗
  • 累计折旧额怎么计算公式
  • 总部资产减值测试例题
  • PQIBrowser.exe是什么进程 PQIBrowser进程查询
  • 其他业务收入跨年调整
  • 芬兰东部的国家有哪些
  • PHP:mcrypt_get_cipher_name()的用法_Mcrypt函数
  • layui 日期控件赋值
  • 小规模企业需要交几个点
  • php数组函数有哪些
  • linux rm 命令
  • 接口多继承的写法
  • elinks --dump
  • 个税赡养老人作废后无法修改
  • 金蝶固定资产折旧调整
  • 以前年度损益调整账务处理分录
  • 任意盈余公积金怎么计算
  • 增值税发票品名 归类
  • mysql数据库注入
  • 进项税额红字
  • 捐赠 赞助 区别
  • 母子公司间资产划转是否属于特殊性收入
  • 其他应收款在借方怎么调账
  • 固定资产出售的收入属于收入吗
  • 税种的分类方法有哪些
  • 在建工程领用原材料
  • 内部转账单怎么填制
  • 建设项目财务费用包括哪些
  • 建筑业异地预缴个税税率
  • 装修设计费多少合理
  • 企业会计准则和小企业准则的区别
  • sql server错误和使用情况报告
  • 数据库sql分组
  • 通过T-SQL语句实现数据库备份与还原的代码
  • mac怎么打开terminal
  • 怎么用uefi装win7
  • boot process
  • win7系统禁止更新
  • 电脑系统管理员已阻止这个应用怎么办
  • xp启用telnet
  • win7系统怎么把c盘的内存加到d盘
  • linux shell脚本编程100例
  • Node.js中的事件循环是什么
  • shell脚本判断两个数大小
  • node.js怎么用
  • android刷题
  • 新浪微博手机客户端下载
  • 深圳地方税务局电话
  • 济南高新区国家税务局
  • 贵阳市税务稽查
  • 贵州省国家税务局电子税务局官网
  • 互联网服务业有哪些行业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设