08 2020 档案
摘要:转自https://www.cnblogs.com/wenxiaofei/p/9853682.html 数据库面试知识点汇总 一、基本概念 1.主键、外键、超键、候选键 超键:在关系中能唯一标识元组的属性集称为关系模式的超键。一个属性可以为作为一个超键,多个属性组合在一起也可以作为一个超键。超键包含
阅读全文
摘要:mysql> truncate actor;ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint (`sakila`.`film_actor`, CONSTRAINT `fk_film_a
阅读全文
摘要:select * from actor into outfile '/data/actor.text' fields terminated by "," enclosed by '"'; 第一列是数值型,两边不加引号,则改为: select * from actor into outfile '/d
阅读全文
摘要:mydumper 是一个多线程备份工具,通过增加线程数,极大提高备份速度。 与mysqldump 不同,mydumper为每个表创建一个或多个文本文件,方便并行备份和并行恢复数据。 安装: yum -y install glib2-devel mysql-devel zlib-devel opens
阅读全文
摘要:MYSQL中有6中不同的日志: 错误日志(Error log) more XXX.err 二进制日志(Binary log) mysql/bin/mysqlbinlog -vv binlog.XXXX1 日志闪回 查询日志(General Query log) show variables like
阅读全文
摘要:percona toolkit是各种高级命令行工具的集合。 该工具包涵盖了MySQL的开发管理、性能优化、配置管理、监控管理、复制管理、系统统计等。 常用的有: 1. pt-archiver (数据归档工具) 2. pt-config-diff (参数对比工具) 3. pt-duplicate-ke
阅读全文
摘要:https://www.cnblogs.com/sunlong88/articles/8672103.html 今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 昨天 SELECT * FROM 表名 WHERE TO_DAYS(
阅读全文
摘要:一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1、导出数据和表结构(常用):mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql敲
阅读全文
摘要:0x01 前言 很多文章中会说,数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话。因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他需要哪些权限。 现在很多mysql用着root账户在操作,并不是大家不知道用root权限太大不安全,而是很多人并不知道该给予什么样的权限既安全又能
阅读全文
摘要:1. 服务器负载:平均负载、cpu使用率、磁盘空间、IO使用率、SWAP使用情况。 常用的命令:uptime、top、sar -u -P ALL -C 1 1、df -h 、iostat -xd 2 2 、free -g 2. 数据库检查:数据库存活、连接数(select count(1) from
阅读全文
摘要:假如仅仅从processlist 无法确定哪个SQL的效率问题,那么需要进一步通过分析慢查询日志来确定问题SQL 解决报错:BEGIN failed--compilation aborted at ./pt-query-digest line 2492. yum install perl-Diges
阅读全文
摘要:1.优化表的设计 1.1 优化表的数据类型 select * from actor procedure analyse(); 1.2 通过拆分表,提高表的访问效率。 垂直拆分和水平拆分 垂直拆分: 把主键和一些列放到一个表上,然后把主键和另外的列放到另外一个表上。 水平拆分: 根据一列或者多列数据的
阅读全文
摘要:近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下 各种IO监视工具在Linux IO 体系结构中的位置 源自 Linux Performance and Tuning Guidelines.pdf 1 系统级IO监控...
阅读全文
摘要:Linux实现了4种I/O调度算法,分别为:NOOP算法(no operate)、最后期限算法(Deadline)、完全公平队列算法(CFQ)和预期算法(Anticipatory)。 NOOP算法 不对I/O请求排序,但会合并请求,除此之外无其他任何优化。它用FIFO队列顺序提交I/O请求。NOOP
阅读全文
摘要:DDL(数据定义语言) 数据库 查看所有数据库SHOW DATABASES; 切换数据库USE 数据库名; 创建数据库CREATE DATABASE [IF NOT EXISTS] 数据库名 [CHARSET=utf8]; 删除数据库DROP DATABASE [IF EXISTS] 数据库名; 修改数据库编码ALTER DATABASE 数据库名 CHARACTE...
阅读全文
摘要:MySQL5.7有以下9组后台线程: 分别为1个主线程,4组IO线程,1个锁线程,1个错误线程,1个purge线程,1个page cleaner线程。 master thread : 主要负责将脏缓存页刷新到数据文件中,执行purge操作,触发检查点,合并插入缓冲区等。 insert buffer
阅读全文
摘要:MySQL体系结构 一、MySQL体系结构图 1、Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的(SQL Interface、Parser、Optimizer、Caches&Buffers、Pluggable Storage Engines) (1) Connectors指的是不同语言中与SQL的交互(2)Management Serveices & Utilities: ...
阅读全文
摘要:通过查看table_locks_waited 和 table_locks_immediate状态变量来分析系统上的表锁争用。 SHOW STATUS LIKE 'table%' 如果table_locks_waited的值比较高,则存在着较严重的表级锁争用情况。 MySQL的表级锁有两种模式:表共享
阅读全文
摘要:MySQL中的3种锁:表级锁,行级锁,页面锁 表级锁: 开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁: 开销大,加锁慢,会出现死锁,锁定粒度小,发生锁冲突的概率最低,并发度最高。 页面锁: 开销和加锁时间介于表锁和行锁之间,会出现死锁,锁定粒度介于表锁和行锁之
阅读全文
摘要:select * from category order by rand() limit 5 rand() 函数随机抽取的样本对总体的统计具有重要意义。
阅读全文
摘要:EXPLAIN SELECT film_id,description FROM film ORDER BY title LIMIT 50,5 从explain 的输出结果中可以看到优化器实际上做了全表扫描,处理效率不高。 按照索引分页后回表方式改写SQL: EXPLAIN SELECT a.`fil
阅读全文
摘要:MRR优化的目的就是减少磁盘的随机访问,InnoDB由于聚集索引的特性,如果查询使用辅助索引,并且用到表中非索引列,那么需要回表读取数据做后续处理,过于随机的回表会伴随大量的随机IO。 而MRR的优化并不是通过辅助索引读取到数据就回表,而是通过范围扫描将数据存入read_rnd_buffer_siz
阅读全文
摘要:在5.7以上版本中,BNL优化器默认是打开的, show variables like 'optimizer_switch' optimizer_switch index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_me
阅读全文
摘要:https://www.jianshu.com/p/c82148473235 一、MySQL中索引的语法 创建索引 在创建表的时候添加索引 CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [ind
阅读全文
摘要:index :通过有序索引顺序扫描直接返回有序数据,不需要额外的排序,操作效率较高。 filesort:通过对返回数据进行排序,filesort 并不代表通过磁盘文件排序,而是说明进行了一个排序操作,至于排序操作是否使用了磁盘文件或临时表等,则取决于MySQL服务器对排序参数的设置和需要排序数据的大
阅读全文
摘要:use sakila; show index from customer; 索引key详解 table 表名称 non_unique 如果索引不能包括重复词,为0,如果可以,则为1 key_name 索引的名称 seq_in_index 索引中的列序号 column_name 列名称 collati
阅读全文
摘要:show status like 'Handler_read%' 如果索引正在工作,handler_read_key的值将很高,这个值代表了一行索引值得读次数,很低的值表明增加索引得到的性能改善不高,因为索引并不经常使用。 Handler_read_rnd_next 的值高则意味着查询运行低效,通常
阅读全文
摘要:https://blog.csdn.net/weixin_36372879/article/details/88710865 异或运算的一些应用https://zhuanlan.zhihu.com/p/43826007 伽罗华域(Galois Field,GF,有限域)乘法运算:
阅读全文
摘要:首先打开trace,设置格式为json SELECT * FROM rental WHERE 1=1 AND rental_date >= '2005-05-25 04:00:00' AND rental_date <= '2006-05-06 05:00:00' AND inventory_id
阅读全文
摘要:查看当前MySQL是否支持profile 通过set 语句 在session 级别开启 profiling set profiling=1; 当前SQL的Query_ID 为 79,通过 show profile for query 79;语句可以看到执行过程中的每个线程的状态和持续时间(消耗时间)
阅读全文
摘要:Dual表是Oracle中的一个实际存在的表,任何用户均可读取,常用在没有目标表的Select中。Dual表由Oracle连同数据字典一同创建,所有的用户都可以用名称DUAL访问该表。这个表里只有一列DUMMY,该列定义为VARCHAR2(1)类型,有一行值X。从DUAL表选择数据常被用来通过sel
阅读全文
摘要:在做多表查询,或者查询的时候产生新的表的时候会出现这个错误: Every derived table must have its own alias(每一个派生出来的表都必须有一个自己的别名)。 (SELECT * FROM customer WHERE email = 'AARON.SELBY@s
阅读全文
摘要:explain select * from film where rating > 9 id : SELECT的查询序列号 1. id相同时,执行顺序由上至下 2. 如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行 3. id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,i
阅读全文