
mysql
zy_crazy_code
java高级开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MVCC多版本并发控制
定义:MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读。在了解MVCC之前我们需要了解一些概念当前读:像select lock in share mode(共享锁), select for原创 2021-04-09 11:42:44 · 265 阅读 · 0 评论 -
查看mysql表 存储位置
show variables like '%datadir%';文件夹为对应数据库进入之后.ibd文件为对应的表原创 2021-01-22 16:07:26 · 2047 阅读 · 1 评论 -
java三十秒插入Mysql100w数据
建表语句CREATE TABLE `employees` ( `id` int(11) NOT NULL, `fname` varchar(30) DEFAULT NULL, `lname` varchar(30) DEFAULT NULL, `hired` date NOT NULL DEFAULT '1970-01-01', `separated` date NOT NULL DEFAULT '9999-12-31', `job_code` int(11) DEFAULT.原创 2021-01-22 15:18:33 · 298 阅读 · 0 评论 -
读写分离为什么能提高性能
读写分离能提高性能这是个不需要说都知道的事,看字我都知道能提高性能了。但是很多面试官非要你说出个所以然来,所以今天在这做个总结 1、物理服务器增加,机器处理能力提升。拿硬件换性能。 2、主从只负责各自的读和写,极大程度缓解X锁和S锁争用。共享锁(S):又称读锁。允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,...原创 2020-12-23 16:05:35 · 412 阅读 · 0 评论 -
MYSQL5.7详细安装步骤
# MYSQL5.7详细安装步骤:### 0、更换yum源1、打开 mirrors.aliyun.com,选择centos的系统,点击帮助2、执行命令:yum install wget -y3、改变某些文件的名称```mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup```4、执行更换yum源的命令```wget -O /etc/yum.repos.d/CentOS...原创 2020-12-15 17:14:25 · 197 阅读 · 0 评论 -
三分钟了解mysql范围分区--就三分多一分钟都不要
范围分区范围分区表的分区方式是:每个分区都包含行数据且分区的表达式在给定的范围内,分区的范围应该是连续的且不能重叠,可以使用values less than运算符来定义。说白了就是就是表数据本来存一个地方的现在按一定条件分开存,方便管理。就这么简单。接下来写几个例子,大家看一遍就都懂了1、创建普通表mysql> DROP TABLE IF EXISTS `employees`;Query OK, 0 rows affected (0.49 sec)mysql> CRE原创 2020-12-14 11:40:53 · 495 阅读 · 0 评论 -
mysql分区表吐血总结
分区表的原理分区表的底层原理:分区表由多个相关的底层表实现,这个底层表也是由句柄对象标识,我们可以直接访问各个分区。存储引擎管理分区的各个底层表和管理普通表一样(所有的底层表都必须使用相同的存储引擎),分区表的索引知识在各个底层表上各自加上一个完全相同的索引。从存储引擎的角度来看,底层表和普通表没有任何不同,存储引擎也无须知道这是一个普通表还是一个分区表的一部分。分区表的操作按照以下的操作逻辑进行:**select查询**当查询一个分区表的时候,分区层先打开并锁住所有的底层表,优化器先判原创 2020-12-13 23:30:30 · 204 阅读 · 0 评论 -
mysql优化之自定义变量使用
先简单介绍下mysql自定义变量的使用方法注:文章所用的表如果没有带创建语句的都是mysql官方提供的数据库(sakila库)和表,可以上官网上去下载或者点击这里下载自定义变量可以是一个常量、一条SQL语句、一个表达式mysql> set @one :=1;Query OK, 0 rows affected (0.01 sec)mysql> set @min_actor :=(select min(actor_id) from actor);Query OK, 0 rows原创 2020-12-13 22:56:27 · 559 阅读 · 0 评论 -
mysql优化之索引监控Handler_read
mysql> show status like 'Handler_read%';+-----------------------+-------+| Variable_name | Value |+-----------------------+-------+| Handler_read_first | 0 || Handler_read_key | 0 || Handler_read_last | 0 || Handl.原创 2020-12-13 00:05:22 · 549 阅读 · 0 评论 -
mysql优化之索引扫描排序
前言:mysql有两种方式可以生成有序的结果:通过排序操作或者按索引顺序扫描,如果explain出来的type列的值为index,则说明mysql使用了索引扫描来做排序。扫描索引本身是很快的,因为只需要从一条索引记录移动到紧接着的下一条记录。但如果索引不能覆盖查询所需的全部列,那么就不得不每扫描一条索引记录就得回表查询一次对应的行,这基本都是随机IO,因此按索引顺序读取数据的速度通常要比顺序地全表扫描慢。mysql可以使用同一个索引即满足排序,又用于查找行,如果可能的话,设计索引时应该尽可能地同原创 2020-12-12 23:56:29 · 234 阅读 · 0 评论 -
mysql优化技巧
这边总结一下mysql在使用过程中比较常见的优化小技巧,比较不好理解的都加了小例子1、当使用索引列进行查询的时候尽量不要使用表达式,可以把计算放在业务层,而不是数据库层错误例:select actor_id from actor where actor_id+1=5;2、尽量使用主键查询,而不是其他索引,因为主键查询不会触发回表查询3、使用前缀索引字段长度比较长的时候,截取部分识别度高的部分当索引想要详细了解的可以看我文章mysql前缀索引--带案例分析4、使用索引扫描来排序原创 2020-12-12 16:17:08 · 186 阅读 · 0 评论 -
mysql优化之前缀索引--带案例分析
为什么要有前缀索引有时候需要索引很长的字符串,这会让索引变的大且慢,通常情况下可以使用某个列开始的部分字符串,这样大大的节约索引空间,从而提高索引效率,但这会降低索引的选择性,索引的选择性是指不重复的索引值和数据表记录总数的比值,范围从1/#T到1之间。索引的选择性越高则查询效率越高,因为选择性更高的索引可以让mysql在查找的时候过滤掉更多的行。一般情况下某个列前缀的选择性也是足够高的,足以满足查询的性能,但是对应BLOB,TEXT,VARCHAR类型的列,必须要使用前缀索引,因为mysql不允许原创 2020-12-12 15:59:35 · 1407 阅读 · 6 评论 -
mysql事务测试
1、打开mysql的命令行,将自动提交事务给关闭--查看是否是自动提交 1表示开启,0表示关闭--设置关闭mysql> select @@autocommit;+--------------+| @@autocommit |+--------------+| 1 |+--------------+1 row in set (0.00 sec)mysql> set autocommit = 0;Query OK, 0 rows affected原创 2020-12-10 23:26:11 · 249 阅读 · 0 评论 -
mysql的锁机制
1、MySQL锁的基本介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的**存储引擎**支持不同的锁机制。比如...原创 2020-12-10 19:49:27 · 129 阅读 · 0 评论 -
mysql索引优化案例分析
一、准备数据SET FOREIGN_KEY_CHECKS=0;DROP TABLE IF EXISTS `itdragon_order_list`;CREATE TABLE `itdragon_order_list` ( `id` bigint(11) NOT NULL AUTO_INCREMENT COMMENT '主键id,默认自增长', `transaction_id` varchar(150) DEFAULT NULL COMMENT '交易号', `gross` doubl.原创 2020-12-10 15:31:44 · 193 阅读 · 0 评论 -
红黑树结构--图文
原创 2020-12-10 11:32:00 · 138 阅读 · 0 评论 -
MySQL索引详解
定义:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。说白了就是相当于书中的目录。优点:1.大大减少了服务器需要扫描的数据量2.帮助服务器避免排序和临时表3.将随机IO变为顺序IO用处:1、快速查找匹配WHERE子句的行2、从consideration中消除行,如果可以在多个索引之间进行选择,mysql通常会使用找到最少行的索引3、如果表具有多列原创 2020-12-09 18:29:02 · 251 阅读 · 0 评论 -
MYSQL performance schema详解
一、performance_schema的介绍 MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。特点: 1、提供了一种在数据库运行时实时检查server的内部执行情况的方法。performance_schema 数据库中的表使用performance_schema存储引擎。该数据库主要关注数据库运行过程中的性能相关的数据,与information_schema不同,informati...原创 2020-12-09 13:02:40 · 575 阅读 · 0 评论 -
mysql优化之performance_schema定位mysql问题
总结了一些mysql优化常见的问题定位语句:performance_schema的表中的数据不会持久化存储在磁盘中,而是保存在内存中,一旦服务器重启,这些数据会丢失(包括配置表在内的整个performance_schema下的所有数据)--1、哪类的SQL执行最多?SELECT DIGEST_TEXT,COUNT_STAR,FIRST_SEEN,LAST_SEEN FROM `performance_schema`.events_statements_summary_by_digest ORDER原创 2020-12-09 11:52:22 · 382 阅读 · 0 评论 -
distinct多字段
distinct完有个字段是不需要distinct的、但是有需要展示--直接找到你需要distinct的字段用group by 解决了SELECT DISTINCTt1.mapping_id,t1.mapping_type,t1.mapping_tab,t1.mapping_name,t2.crt_teamFROMty_etl.version_mapping t1LEFT JOIN ty_...原创 2018-02-26 17:10:25 · 2022 阅读 · 1 评论