mysql数据库应用
文章平均质量分 53
另一花生
竹杖芒鞋轻胜马,一蓑烟雨任平生
展开
-
事务隔离级别和实现原理
脏写脏读不可重复读幻读隔离级别SQL 标准的事务隔离级别包括:读未提交(read uncommitted):一个事务还没提交时,它做的变更就能被别的事务看到。避免发生脏写读提交(read committed):一个事务提交之后,它做的变更才会被其他事务看到。避免发生脏写、脏读可重复读(repeatable read):一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的。当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的。串行化(serializable):对于同原创 2021-04-15 09:52:07 · 984 阅读 · 0 评论 -
索引使用注意事项
什么时候没用索引:1.有or必全有索引;2.复合索引未用左列字段;3.like以%开头;4.需要类型转换;5.where中索引列有运算;6.where中索引列使用了函数;7.如果mysql觉得全表扫描更快时(数据少);什么时候没必要用1.唯一性差;2.频繁更新的字段不用(更新索引消耗);3.where中不用的字段;4.索引使用<>时,效果一般;...转载 2021-03-30 13:32:35 · 77 阅读 · 0 评论 -
索引知识点总结
(1)索引的出现就是为了提高数据查询效率,就像书的目录一样(2)索引不但写在内存中,还写在硬盘中(3)索引是存储引擎实现的(4)索引的常见模型1)哈希表:以键-值(key-value)存储数据的结构~~把值放在数组里,用一个哈希函数把key换算成一个确定的位置,然后把value放在数组的这个位置~~哈希冲突的处理办法:链表~~哈希表适用场景:只有等值查询的场景2)有...原创 2021-03-12 23:16:14 · 395 阅读 · 0 评论 -
MVCC多版本控制机制
转:https://segmentfault.com/a/1190000012650596基础知识背景:事务相关ACID特性 高并发事务相关的问题, 像是脏读,不可重复读,幻读,更新丢失等问题; MySQL应对高并发事务是如何给出解决方案的(其中包含各个隔离级别的简介); 各个隔离级别的具体介绍及与锁的关系;多版本控制: 指的是一种提高并发的技术。最早的数据库系统,只有读读之间可以并发,读写,写读,写写都要阻塞。引入多版本之后,只有写写之间相互阻塞,其他三种操作都可以并行,这样...转载 2021-02-18 16:22:50 · 330 阅读 · 0 评论 -
分区表使用注意事项
1:啥是分区表?创建表的时候,使用了数据分区相关的语法,存储数据的时候,存储引擎会根据分区规则将不同的数据存入不同的分区文件。2:使用分区表的劣势?2-1:MySQL 在第一次打开分区表的时候,需要访问所有的分区——打开的表较多,性能糟糕也可能报打开的表超过设置的问题。2-2:在 server 层,认为这是同一张表,因此所有分区共用同一个 MDL 锁——锁粒度大,影响并发度,站在Server看也是合理的,不过站在存储引擎的角度看就不合理了。2-3:在引擎层,认为这是不同的表,因此 MDL 锁之后的原创 2021-02-15 19:12:16 · 804 阅读 · 0 评论 -
自增主键不连续的问题
在什么场景下自增主键可能不连续?1:唯一键冲突2:事务回滚3:自增主键的批量申请深层次原因是,不判断自增主键是否已存在和减少加锁的时间范围和粒度->为了更高的性能->自增主键不能回退->自增主键不连续自增主键是怎么做的唯一性的?自增值加1,自增锁控制并发自增主键的生成性能如何?这个需要测试一下,数据库的自增主键也用做生成唯一数字,作为其他单号,比如:并发量小的订单号,性能可能一般。自增主键有最大值嘛?如果有,到了咋弄?最大值应该有,因为数字总有个范围,到了当做字符串的一原创 2021-02-15 18:33:53 · 745 阅读 · 0 评论 -
关于MySQL事务隔离级别的问题
1.innodb支持RC和RR隔离级别实现是用的一致性视图(consistent read view)2.事务在启动时会拍一个快照,这个快照是基于整个库的.基于整个库的意思就是说一个事务内,整个库的修改对于该事务都是不可见的(对于快照读的情况)如果在事务内select t表,另外的事务执行了DDL t表,根据发生时间,要嘛锁住要嘛报错(参考第六章)3.事务是如何实现的MVCC呢?(1)每个事务都有一个事务ID,叫做transaction id(严格递增)(2)事务在启动时,找到已提交的最大事务I原创 2021-02-15 00:37:32 · 230 阅读 · 0 评论 -
解决Navicat for MySQL 连接 Mysql 8.0.11 出现1251- Client does not support authentication protocol 错误
原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,解决问题方法有两种:方法1.把mysql用户登录密码加密规则还原成mysql_native_password.进入到安装mysql数据库的目录中;mysql -u root -pEnter password:******ALTER USER "root"@'localhost' IDENTIFIED WITH my...原创 2020-06-16 11:46:53 · 229 阅读 · 0 评论 -
01 | 基础架构:一条SQL查询语句是如何执行的?
总结1、mysql主要组成部分,连接器,优化器,执行器,存储引擎。2、连接器,验证账号密码,维持链接,超时自动断开,链接过程复杂,建议使用长链接,连接比较占用内存,需要定时断开,5.7之后可以使用mysql_reset_connection。3、分析器,验证语法的合规性,把sql转换成mysql内部识别的语句,表明转换成对应的id。4、判断sql内部的执行顺序。5、执行器,验证操...原创 2020-04-09 11:00:06 · 232 阅读 · 0 评论 -
数据源的作用
JDBC操作的步骤:1、加载驱动程序2、连接数据库3、操作数据库4、关闭数据库,释放连接也就是说,所有的用户都需要经过此四步进行操作,但是这四步之中有三步对所有人都是一样的,而所有人只有在操作上是不一样,那么这就造成了性能的损耗。那么最好的做法是,准备出一个空间,此空间里专门保存着全部的数据库连接,以后用户用数据库操作的时候不用再重新加载驱动、连接数据库之...原创 2014-03-01 09:46:28 · 5617 阅读 · 1 评论 -
mysql的左右内连接
用个例子来解析下mysql的左连接, 右连接和内连接create table user_id ( id decimal(18) );create table user_profile ( id decimal(18) , name varchar(255) ) ;insert into user_id values (1);insert into user_id values (2);...原创 2014-03-02 11:22:55 · 1846 阅读 · 1 评论 -
学习MySQL常用操作命令
本篇主要熟悉一写常用命令。 1、启动MySQL服务器 实际上上篇已讲到如何启动MySQL。两种方法: 一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作。 二是在DOS方式下运行 d:mysqlbinmysqld 2、进入mysql交互操作界面 在DOS方式下,运行: d:mysqlbinmysql 出现: mysql 的提示符,原创 2014-01-21 11:02:00 · 1131 阅读 · 0 评论 -
mysql修改默认字符编码
mysql默认字符集能否进行修改呢?答案是肯定的,下面就将教您两种修改mysql默认字符集的方法,希望对您学习mysql默认字符集方面能有所启迪。(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,如 default-character-set = utf8 character_set_server = utf8修改完后,重启mysql的服务,原创 2014-01-21 11:15:54 · 1458 阅读 · 0 评论