加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

详解高性能mysql之MySQL高级特性总结

发布时间:2019-07-12 13:53:11 所属栏目:编程 来源:波波说运维
导读:概述 闲来无事,看了下高机能mysql这本书,个中的一些MySQL高级特征写的还不错,在这里总结分享下。 01.分区表 1、分区表限定 一张表最多1024个分区 分区表中无法行使外键束缚 2、分区表留意点 按行写入大量数据时分区过多会呈现题目,以是对大大都体系,1

概述

闲来无事,看了下高机能mysql这本书,个中的一些MySQL高级特征写的还不错,在这里总结分享下。

详解高机能mysql之MySQL高级特征总结

01.分区表

1、分区表限定

  • 一张表最多1024个分区
  • 分区表中无法行使外键束缚

2、分区表留意点

按行写入大量数据时分区过多会呈现题目,以是对大大都体系,100阁下个分区是没有题目的

注:键分区和哈希分区没有此题目

3、查询优化

对付会见分区来说,在where中带分区列是很重要的(能过滤部门分区)

详解高机能mysql之MySQL高级特征总结

注:where中要行使分区函数列自己才气过滤分区,如where time='2017',而where YEAR(time)=2017错误

02.视图

1、观念

假造表,不存数据,数据来自其他表

2、更新视图

更新列必需来自统一表,且含GROUP BY、UNION、聚合函数及非凡环境不能更新

3、对机能的影响

重构数据库时可行使视图而不必修改表布局,用视图建设基于列的权限节制镌汰特殊开销等

4、视图的限定

不支持物化视图(即视图在表中不行查察),不支持视图中建索引

03.外键索引

InnoDB是mysql今朝独一支持外键索引的内置引擎

外键本钱:外键每次修改数据时都要求在另一张表多执行一次查找,虽然外键在相干数据删除和更新上比在应用中维护更高效。

注:很多案例中发明,在对机能说明时发明外键就是瓶颈地址,删除外键后机能当即大幅晋升。

04.字符集和校对

详解高机能mysql之MySQL高级特征总结

字符集编码优先级:列>表>数据库

校对法则:_cs、_ci、_bin别离对应巨细写不敏感、巨细写敏感、二进制值

05.全文索引

mysql不支持中文全文索引,应用其他引擎如 Sphinx等

06.漫衍式(XA)事宜

企业在漫衍式大都据库下仍能担保事宜的ACID,这里后头单独先容。

07.查询缓存

观念:缓存select功效,跳过理会、优化、执行阶段。

查询缓存是完全存储在内存中。mysql无法为每一个查询功效准确分派巨细恰恰配匹的缓存空间。

详解高机能mysql之MySQL高级特征总结

查询缓存怎样分派内存来存储功效数据

查询缓存无法掷中的缘故起因:包括不确定的函数、未处理赏罚过该查询、内存用完被逐出

设置和维护查询缓存:

  • query_cache_type:是否打开查询缓存,配置成ON、OFF、DEMAND(这个仅在明晰写明SQL_CACHE下才放入缓存)
  • query_cache_size:查询缓存行使的总内存空间(值是1024整数倍)
  • query_cache_min_res_unit:查询缓存平分派内存块时的最小单元。
  • query_cache_limit:MySQL能缓存的最大查询功效
  • query_cache_wlock_invalidate:某表被锁住,是否如故从查询缓存返回功效,默认OFF

通用查询缓存优化:

1) 用多个小表取代一个大表对查询缓存

2)批量写入时只必要做一次缓存失效

3)缓存空间太大,处事器也许僵死,步伐是节制巨细或禁用

4)用SQL_CACHE、SQL_NO_CACHE节制某个select是否缓存

5)对付写麋集型应用,直接禁用查询缓存更好

注:若必要更高的缓存服从,保举行使memcached或redis之类

【编辑保举】

  1. 比拟云端NoSQL数据库范例
  2. 浅谈数据库、JVM、缓存、SQL等机能调优要领和原则
  3. 几款优越的漫衍式相关数据库
  4. 两个小器材,MySQL死锁说明,新手艺又Get!
  5. MySQL数据库查询缓存总结
【责任编辑:华轩 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读