MySQL高级特性
2020-11-15 20:22:40 0 举报
AI智能生成
MySQL高级特性
作者其他创作
大纲/内容
分区表
分区表的原理
SELECT
INSERT
DELETE
UPDATE
分区表的类型
根据时间间隔分区
键值、哈希和列表分区
如何使用分区表
保证大数据量的可扩展性的策略
全量扫描数据,不要任何索引
索引数据,并分离热点
什么情况下会出问题
NULL值会使分区过滤无效
分区列和索引列不匹配
选择分区的成本很高
打开并锁住所有底层表的成本可能很高
维护分区的成本可能很高
其他限制
所有分区都必须使用相同的存储引擎
分区函数可以使用的函数和表达式也有一些限制
某些存储引擎不支持分区
对于MyISAM分区表,不能再使用LOAD INDEX INTO CACHE 操作
对于MyISAM分区表,使用分区表时需要打开更多的文件描述符
查询优化
合并表
分区表的限制
一个表最多有1024个分区
分区表无法使用外键约束
如果分区字段中有主键或者唯一索引的列,则必须包含进来
视图
可更新视图
限制
视图对性能的影响
视图的限制
视图的两种实现算法
合并算法
临时表算法(DERIVED)
外键约束
在MySQL内部存储代码
存储过程和函数
限制
触发器
限制
事件
在存储程序中保留注释
使用存储代码的优点
使用存储代码的缺点
游标
绑定变量
绑定变量的优化
在准备阶段
在第一次执行的时候
在每次SQL语句执行时
SQL接口的绑定变量
绑定变量的限制
优点
用户自定义函数
插件
存储过程插件
后台插件
全文解析插件
审计插件
认证插件
字符集和校对
MySQL如何使用字符集
创建对象时的默认设置
服务器和客户端通信时的设置
选择字符集和校对规则
字符集和校对规则如何影响查询
全文索引
自然语言的全文索引
布尔全文索引
全文索引的限制和替代方案
限制
MySQL全文索引只有一种判断相关性的方法:词频
MySQL全文索引只有全部在内存中的时候,性能才非常好
全文索引还会影响查询优化器的工作
全文索引的配置和优化
分布式((XA)事务
内部XA事务
外部XA事务
查询缓存
MySQL如何判断缓存命中
查询缓存如何使用内存
什么情况下查询缓存能发挥作用
缓存未命中的可能原因
如何配置和维护查询缓存
配置
query_cache_type
query_cache_size
query_cache_min_res_unit
query_cache_limit
query_cache_wlock_invalidate
维护查询缓存
InnoDB和查询缓存
通用查询缓存优化
用多个小表代替一个大表对查询缓存有好处
批量写入时只需要做一次缓存失效,所以相比单条写入效率更好
对于写密集型的应用,直接禁用查询缓存可能会提高系统的性能
因为对互斥信号量的竞争,有时直接关闭查询缓存对读密集型的应用也会有好处
查询缓存的替代方案
0 条评论
下一页