个人书签(持续更新中...)
下面是个人常用工具、动漫观看地址、学习、应用等相关分享。相关内容持续更新,也欢迎大家积极留言投稿,相互学习。投稿邮箱:thinkbim@thinkbim.cn
工具好用的用户分享
TECH-GROW
专注于自媒体引流的免费开放平台
Php2Golang
PHP函数、类和库的Golang替代品
...
Windows软件
WindowsBulk Crap UninstallerimFile
Mac软件
MacIINA
Apifox
Typora
Xmind
RedisInsight-v2
Motrix
Permute 3
Final Cut Pro
MotionDownie 4
BuhoNTFS
LanDrop
TinyPNG4Mac
Another Desktop Manager
imFile
Riffo
开发MAMP PRO
FileZilla
IntelliJ IDEA
Navicat Premium
SwitchHosts
TinyPNG4Mac
Termius
Docker
PhpWebStudy
设计Sketch
视频Permute 3
Final Cut Pro
Motion
IINA
日语五十音(元音&辅音)
日语五十音图可以被划分成 10 行 5 段,其中第一行就是这五个元音,它们分别是:「あ」「い」「う」「え」「お」。每一行都用该行第一个假名来命名,比如第一行就叫做「あ行」。而每一段,都用该段的第一个假名来命名,所以五段分别为:「あ段」,「い段」,「う段」,「え段」,「お段」。
日语发音特点口型小、唇形扁
假名平假名&罗马字对应
五十音图
あ段
い段
う段
え段
お段
あ行
あ a
い i
う u
え e[ai]
お o
か行
か ka
き ki
く ku
け ke
こ ko
さ行
さ sa
し shi[x]
す su
せ se
そ so
た行
た ta
ち chi[q]
つ tsu[ci]
て te
と to
な行
な na
に ni
ぬ nu
ね ne
の no
は行
は ha
ひ hi
ふ hu
へ he
ほ ho
ま行
ま ma
み mi
む mu
め me
も mo
や行
や ya
ふ yu
よ yo
ら行
ら ra[la]
り ri[li]
る ru[lu]
れ re[le]
ろ ro[lo]
わ行
わ wa
を ...
MySQL数据库高频面试题
如何实现索引机制?按照索引分类:B+树 Hash索引 全文索引
InnoDB和MyISAM 索引实现的区别?InnoDB 表结构、数据和索引是一个文件 .idb使用B+树实现,叶子节点保存的是每行数据聚簇索引MyISAM 表结构、数据和索引文件分开存放的 .sdi .MYD .MYI索引文件只保存所在叶节点的指针,通过指针来读取行中的数据非聚簇索引,进行回表进而查出指针对应的数据
如果表中没有创建索引,和主键I,系统回默认创建 ROW_ID 索引列
B树和B+树B树 每个节点存储的是数据B+树 存储的是数据key 而数据只在最叶子节点才存储的数据
B+树的实现原理record_type 记录类型0 普通记录1 B+树非叶子节点记录 2最小记录 3最大记录next_record 下一条记录位置
聚簇索引和非聚簇索引优缺点聚簇索引优点:排序和范围查找非常快,由于数据都是紧密相连的,可以从更少的数据块中提取数据,节省大量IO操作缺点:插入数据严重依赖插入顺序,按照主键方式插入最快,否则会出现页分裂,严重影响性能更新主键代价高,会导致被更新的行移动
限制InnoDB支持聚簇索引 MyISA ...
MySQL索引
提高操作性能的最佳方法 SELECT是在查询中测试的一个或多个列上创建索引。索引条目就像指向表行的指针,允许查询快速确定哪些行与子句中的条件匹配WHERE,并检索这些行的其他列值。可以索引所有 MySQL 数据类型。尽管为查询中可能使用的每个列创建索引可能很诱人,但不必要的索引会浪费空间和时间,让 MySQL 决定使用哪些索引。索引还增加了插入、更新和删除的成本,因为每个索引都必须更新。您必须找到合适的平衡点以使用最佳索引集实现快速查询。
索引优点
大大减少了服务器需要扫描的数据量
帮助服务器避免排序和临时表
将随机io变成顺序io
索引分类
主键
唯一
普通
全文
组合
索引数据结构
哈希表 MEMORY表
B+Tree 二叉树–红黑树–B树–B+树
技术名词回表普通索引列存储的是主键,叶子节点 存储的是主键 然后通过主键索引树查询到所要的记录select * from table where name=?
覆盖索引叶子节点 存储的是主键 查询到主键直接返回select id from table where name=?
最左匹配指的是联合(组合)索 ...
MySQL执行计划 explain详解
根据您的表、列、索引和WHERE子句中的条件的详细信息,MySQL 优化器考虑了许多技术来有效地执行 SQL 查询中涉及的查找。可以在不读取所有行的情况下执行对巨大表的查询;可以在不比较行的每个组合的情况下执行涉及多个表的连接。优化器选择执行最高效查询的一组操作称为“查询执行计划”,也称为 EXPLAIN计划。
1explain select * from table;
参数说明idselect查询的序列号,包含一组数字,表示查询中执行select子句或者操作表的顺序
如果id相同,那么执行顺序从上到下
如果id不同,如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行
id相同和不同的,同时存在:相同的可以认为是一组,从上往下顺序执行,在所有组中,id值越大,优先级越高,越先执行
select_type主要用来分辨查询的类型,是普通查询还是联合查询还是子查询
SIMPLE
简单的 select 查询,查询中不包含子查询或者UNION
PRIMARY
查询中若包含任何复杂的子部分,最外层查询则被标记为Primary
UNION
SELECT中的 ...
schema与数据类型优化
数据类型的优化
设计合适的数据类型,更小的数据通常更快
简单数据类型的操作需要更少的CPU周期(整型比字符串、日期时间、IP地址)
尽量避免使用null
实际细则
date 3个字节timestamp 4个字节枚举
合理使用范式和反范式主键的选择代理主键自然主键主键生成器
字符集的选择存储引擎的选择适当的数据冗余适当拆分垂直拆分 按照不同业务进行拆分,水平拆分 按照1-1000,10001-20000
MySQL性能优化
性能监控SHOW PROFILE [TYPE]TYPE可以指定 可选值以显示特定的附加类型的信息:
ALL 显示所有信息
BLOCK IO显示块输入和输出操作的计数
CONTEXT SWITCHES显示自愿和非自愿上下文切换的计数
CPU 显示用户和系统 CPU 使用时间
IPC 显示发送和接收的消息计数
MEMORY 目前没有实施
PAGE FAULTS 显示主要和次要页面错误的计数
SOURCE 显示源代码中函数的名称,以及函数所在文件的名称和行号
SWAPS 显示交换计数
查看&设置profile12SELECT @@profiling;SET profiling = 1;
123456789SHOW PROFILES;+----------+------------+----------------------------+| Query_ID | Duration | Query |+----------+------------+----------------------------+| 1 | 0 ...
MySQL性能优化
Mysql调优性能监控使用show profile查询剖析工具,可以指定具体的type此工具默认是禁用的,可以通过服务器变量在绘画级别动态的修改set profiling=1;当设置完成之后,在服务器上执行的所有语句,都会测量其耗费的时间和其他一些查询执行状态变更相关的数据。select * from emp;在mysql的命令行模式下只能显示两位小数的时间,可以使用如下命令查看具体的执行时间show profiles;执行如下命令可以查看详细的每个步骤的时间:show profile for query 1;
type
all:显示所有性能信息
show profile all for query n
block io:显示块io操作的次数
show profile block io for query n
context switches:显示上下文切换次数,被动和主动
show profile context switches for query n
cpu:显示用户cpu时间、系统cpu时间
show profile cpu for quer ...
