mysql function and operate

mysql在针对string类型使用int的索引情况,如select * from table where tbl_name=1;在tbl_name上有索引且是string类型,此时将不走索引因为对于mysql来说1可能代表'1','1a'.即没法确定值。

analyze table tbl_name:分析数据库表主要用于索引分析,可以改变数据库对索引的选择与join时的操作,可以使用show index查看效果(Cardinality字段).

describe 可用于table分析,也可以sql语句分析与explain一样

innodb:innodb的表空间由各种segment组成,每个segment由extent组成,每个extent由多个page构成。

mysql锁机制:

innodb的锁一般使用在索引上,如果索引使用不当,可能导致全表被锁。

mysql的日志:

undo log是tablespace里面的undo段(即以前的rollback segment),在5.6.3以后可以配置独立的tablespace(innodb_undo_tablespaces,innodb_undo_directory),redo log由专门的文件存储(innodb_log_file_size)。

mysql通过undo log和redo log来实现数据库的原子性、持久性(redo log)、一致性(undo log).

undo log通过记录事务的操作前的版本。实现回滚及mvcc功能,是逻辑日志,根据每行记录进行记录。undo log可以当成数据undo log的操作都会记录到redo log中。insert log比较简单,update、delete log更复杂需要维护多个版本,防止其它事务使用,有purge线程专门处理undo页

redo log通过记录事务的操作新版本,在提交事务之前进行持久化,通常是物理日志,记录的是页的物理修改操作。一般是顺序写入。也会有redo log缓存可以通过参数设置,适当提升性能,当然有可能丢失数据。master 线程一般会定期刷新redo 页到磁盘。

innodb 针对每行添加了3个字段,一个是标识上一个事务identifier叫DB_TRX_ID,一个是指向undo log 记录的指针DB_ROLL_PTR,一个是每次插入新纪录时单调增加的row id DB_ROW_ID。

innodb在删除时并不会马上删除,只是添加一个删除的标识位,只有当undo log的delete log被删除时(由上面提到的purge线程处理),才真正物理的删除该行及索引。

innodb在primary key(clustered index)的原则:如果手动创建了primary key则采用第一个unique index,如果没有unqiue index,innodb在内部产生一个隐藏的包含row id的列。

innodb change buffering:innodb针对索引特别是二级索引的缓存,主要用于insert、update、delete操作引起的索引变化。此时如果索引没有缓存,将会引起显著的io次数,所以可以使用change buffering暂时缓存起来,适当的时候再更新或合并到索引上(可以在index page加载到缓存时)。

innodb不维护一个表的记录数select count(*) from tbl_name需要去查找索引,主要是因为innodb支持事务,当多个事务并发时数据,在一个时间点计算的行数可能不一样(myisam相反)。

partition分区

分区的优点:1、扩大存储空间,可以在不同的disk、filesystem存储更多的数据 2、加快查询速度 如SELECT * FROM t PARTITION (p0,p1) WHERE c < 5,只需要查询固定分区 3、提升性能,查询一些聚合函数,可以在不同分区并发进行,增加throughput。

四类分区

range:主要使用场景 1 当你需要删除一些数据时 2 当你使用date、datetime等字段分区时 3 当你经常使用分区字段查询时

例:

CREATE TABLE employees (id INT NOT NULL,fname VARCHAR(30),lname VARCHAR(30),hired DATE NOT NULL DEFAULT '1970-01-01',separated DATE NOT NULL DEFAULT '9999-12-31',job_code INT NOT NULL,store_id INT NOT NULL
)
PARTITION BY RANGE (store_id) (PARTITION p0 VALUES LESS THAN (6),PARTITION p1 VALUES LESS THAN (11),PARTITION p2 VALUES LESS THAN (16),PARTITION p3 VALUES LESS THAN (21)
);

list

例:

CREATE TABLE employees (id INT NOT NULL,fname VARCHAR(30),lname VARCHAR(30),hired DATE NOT NULL DEFAULT '1970-01-01',separated DATE NOT NULL DEFAULT '9999-12-31',job_code INT,store_id INT
)
PARTITION BY LIST(store_id) (PARTITION pNorth VALUES IN (3,5,6,9,17),PARTITION pEast VALUES IN (1,2,10,11,19,20),PARTITION pWest VALUES IN (4,12,13,14,18),PARTITION pCentral VALUES IN (7,8,15,16)
);

hash:在hash(expr)中,expr必须是个整数常量,mysql一般hash值mod(分区数)决定分区位置

例:

CREATE TABLE employees (id INT NOT NULL,fname VARCHAR(30),lname VARCHAR(30),hired DATE NOT NULL DEFAULT '1970-01-01',separated DATE NOT NULL DEFAULT '9999-12-31',job_code INT,store_id INT
)
PARTITION BY HASH(store_id)
PARTITIONS 4;

key:与hash的区别是key值可以不是整数,采用md5(expr)或者类似的函数如password决定分区位置

例:

CREATE TABLE tk (col1 INT NOT NULL,col2 CHAR(5),col3 DATE
)
PARTITION BY LINEAR KEY (col1)
PARTITIONS 3;

EXPLAIN PARTITIONS可以分析带有分区的表


分区约束:在一个表里面如果有唯一索引(主键索引包含在唯一索引里面),那么用于分区的字段必须是该表的所有唯一索引的一部分,如果没有唯一索引则不受限制,可以使用任意字段

错误例:

CREATE TABLE t1 (col1 INT NOT NULL,col2 DATE NOT NULL,col3 INT NOT NULL,col4 INT NOT NULL,UNIQUE KEY (col1, col2)
)
PARTITION BY HASH(col3)
PARTITIONS 4;CREATE TABLE t2 (col1 INT NOT NULL,col2 DATE NOT NULL,col3 INT NOT NULL,col4 INT NOT NULL,UNIQUE KEY (col1),UNIQUE KEY (col3)
)
PARTITION BY HASH(col1 + col3)
PARTITIONS 4;

正确例:

CREATE TABLE t1 (col1 INT NOT NULL,col2 DATE NOT NULL,col3 INT NOT NULL,col4 INT NOT NULL,UNIQUE KEY (col1, col2, col3)
)
PARTITION BY HASH(col3)
PARTITIONS 4;CREATE TABLE t2 (col1 INT NOT NULL,col2 DATE NOT NULL,col3 INT NOT NULL,col4 INT NOT NULL,UNIQUE KEY (col1, col3)
)
PARTITION BY HASH(col1 + col3)
PARTITIONS 4;

注:在mysql5.6.6以后针对mysiam引擎表,不在采取全表锁,而是使用partition pruning(分区优化)对特定的分区加锁。

转载于:https://www.cnblogs.com/hike2008/p/4759089.html

mysql文档摘要续4相关推荐

  1. 复旦大学张奇组:对话摘要数据不足?对话数据、文档摘要数据,我全都要!...

    ©PaperWeekly 原创 · 作者 | 刘兴贤 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 这篇文章发表在 EMNLP 2021,是复旦大学张奇老师组的工作.本文尝试解决的问题是对 ...

  2. linux和mysql重点哪个_重要的MySQL 文档存储知识点扫盲

    MySQL 文档存储 可以跳过底层数据结构创建.数据规范化和其它使用传统数据库时需要做的工作,直接存储数据. MySQL 可以提供 NoSQL JSON 文档存储Document Store 了,这样 ...

  3. 高性能mysql_「高性能MySQL」十年阿里架构师推荐,这份高性能MySQL文档送给你

    MySQL MySQL的概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方 ...

  4. 论文阅读|基于领域知识图谱的多文档摘要生成与应用

    论文地址:基于领域知识图谱的多文档摘要生成与应用 先验知识 1.多文档摘要技术: (理解:类似于每篇文章的摘要.关键词,方便通过标签筛选是否是你需要的内容) 利用计算机将同一主题下或者不同主题下的多篇 ...

  5. 【mysql系列】一键生成mysql文档

    前言:我们有时候在编写文档的时候会涉及到数据库表结构,如何建完表之后将表的文档一键生成呢? 一.pom引入screw <!-- screw核心 --><dependency>& ...

  6. 不服不行!在这份MySQL文档面前,别的数据库学习资料都是拉基

    对于程序员来说,面试内容一般分为两个部分:编程面试题部分 + 数据库面试题部分. 据不完全调查,作为数据库中的主流选择 MySQL 的薪资待遇正在逐年增加,而且似乎不仅仅是程序员在学,就连很多产品经理 ...

  7. mysql 文档生成器_最好用的数据库文档生成工具

    一 前言 本文介绍一些比较流行的数据库文档生成工具,什么是数据库文档? 其实在工作中进行项目交付的时候经常用到:简单来说数据库文档就是对整个数据库设计说明的文档,比如使用了哪个数据库,每张表的字段,类 ...

  8. java jdom 更新xml_Java中使用JDOM来修改XML文档(续前)

    22.3.2 使用JDOM来处理XML文档 本节介绍使用JDOM来处理之前建立的XML文档"customer.xml",包括添加.删除以及修改XML文档中的元素.步骤如下. (1) ...

  9. mysql文档顶层出现无效内容_文档的顶层无效。处理资源问题,人家网站可以,我的不行!...

    我将人家网站的xml复制到我的网站出现: 文档的顶层无效.处理资源 http://www.xp001.com/1.xml 我的不行(但是http://www.xp001.com/2.xml是差不多类型 ...

最新文章

  1. 使用cxf开发webservice应用时抛出异常
  2. Python入门100题 | 第071题
  3. Spark中自定义排序
  4. SQL Server 2005如何起用 xp_cmdshell
  5. windows病毒和linux吗,与Windows相比,Linux很少感染病毒。()
  6. SpringBoot 自带工具类~FileCopyUtils
  7. dw中创建java程序_Java创建对象的过程简介
  8. LINUX下安装svn客户端
  9. ccf认证的期刊和会议_ccf推荐AI、CV方向的国际学术期刊、会议
  10. 小米网站短信验证码接口的轰炸防护
  11. 长盛兴业入股宝沃背后:为神州优车相关方 王百因是陆正耀同学
  12. 局部边缘保留滤波器LEP算法原理及matlab代码实现
  13. 三层vxlan原理_网工知识角|没人会告诉你的网络SDN软定义技术中VXLAN的4个特点
  14. 什么是最好的在线UML软件工具?
  15. MySQL数据库:注释及数据类型
  16. Cesium结合高德SDK路径规划
  17. 补码加减运算及判断溢出方法
  18. 英文电影经典台词整理(原创)
  19. NIPS最佳,惊人的天赋与无人察觉的缺陷并存,GPT-3的未来有多少种可能......
  20. 给90后发了面试邀请,可他却因为“薪酬面议”拒绝了

热门文章

  1. 【以太坊】深入理解智能合约(合约调合约)
  2. python【数据结构与算法】B树概念解析和实现
  3. 【408预推免复习】计算机组成原理之计算机系统概论
  4. 【深度学习】模型训练过程可视化思路(可视化工具TensorBoard)
  5. 【深度学习入门到精通系列】卷积和池化计算详解
  6. Android移动开发之【通往安卓的神奇之旅】Senior VIew高级组件与onClickListener()再探索
  7. 智能集群理论优化控制_无人机集群对抗研究的关键问题
  8. 打开闪光灯java代码_android 拍照带水印(可打开闪光灯功能)
  9. 珠海网络推广浅析该如何高效的提高搜索引擎的抓取频次?
  10. 网站内容优化——什么样的文章可以帮助提升网站优化水平呢?