mysql
Catalina_yep
这个作者很懒,什么都没留下…
展开
-
Innodb的临键锁,间隙锁,记录锁
一.锁的分类1.共享锁(行锁):Shared Locks1)概念:共享锁也称读锁,多个事务对于数据可以共享访问,不能操作修改2)使用方式:SELECT * from testlock where id=1 LOCK IN SHARE MODE ----加锁COMMIT/ROLLBACK ---释放锁2. 排它锁(行锁):Exclusive Locks1)概念:写锁,又称互斥锁,独占锁,事务获取了排他锁,其他事务就不能再获取锁,包括读锁也获取不到,只有该获取了排他锁的事务是可以对数原创 2020-09-27 15:33:38 · 239 阅读 · 0 评论 -
Innodb的行锁的实现原理
一.innodb行锁的实现1.innodb的行锁是通过给索引的索引项加锁来实现的2.innodb按照辅助索引进行数据操作时,辅助索引和主键索引都将锁定指定的索引项3.通过索引进行数据检索时,innodb才使用行级锁,否则innodb将使用表锁二.举例说明1.这边有一张表,id为主键,name为普通字段2.当用主键id来进行数据检索时,其余行仍然可以操作3.另一个线程仍然可以操作id=1的数据,因为它只锁住了id=6这一列4.当用非索引的字段来进行数据检索时,此时会升级为表锁,其余列就不原创 2020-09-27 15:03:05 · 2621 阅读 · 0 评论 -
数据库---常用数据库的驱动程序
Oracle数据库驱动程序包名:ojdbc6.jar驱动类的名字:oracle.jdbc.driver.OracleDriverJDBCURL:jdbc:oracle:thin: @dpip:port: databasename说明:驱动程序包名有可能会变JDBC URL中各个部分含义如下:dbip –为数据库服务器的IP地址,如果是本地可写:localhost或127.0.0.1。port –为数据库的监听端口,需要看安装时的配置,缺省为1521databasename –为数据库的SID原创 2020-07-01 20:19:00 · 638 阅读 · 0 评论 -
MySQL的存储引擎
一.MyISAM1.特点1)支持表级别锁2)查询速度快3)不支持事务和外键4)如果使用该数据库引擎,会生成三个文件:.frm:表结构信息.MYD:数据文件.MYI:表的索引信息二.InnoDB1.InnoDB特点:1)、支持事务a.相对于MyISAM 查询慢一些2)、数据多版本读取(InnoDB+MyISAM+ISAM)3)、锁定机制的改进行级别锁4)、实现外键三. InnoDB与MyISAM区别InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言原创 2020-11-30 09:27:40 · 179 阅读 · 0 评论 -
mysql什么时候用不到索引
1.索引列上使用函数(replace\substr\concat\sum count avg),表达式2.字符串不加引号,出现隐式转换3.like条件中前面带%4.负向查询,例如not in ,<>是可以用到查询的原创 2020-11-26 21:34:50 · 285 阅读 · 0 评论 -
mysql---如何获取有性能问题的sql
一.通过用户返馈获取存在性能问题的sql二.通过慢查日志获取存在性能问题的sql三.实时获取存在性能问题的sql原创 2020-10-22 20:12:28 · 106 阅读 · 0 评论 -
mysql---如何为innodb选择主键
一.主键应该尽可能的小因为在innodb表中,每一个非主键索引的叶子节点上都会存储主键列的信息, 所以如果主键索引太大,会导致其他非主键索引页变大, 降低索引的查询效率二.主键应该是顺序增长的innodb的逻辑顺序和主键索引的顺序是相同的,即聚簇索引, 如果主键索引是自动增长的,那这样插入数据 也会顺序插入,避免了随机IO的产生,提交插入效率三.innodb的主键和业务主键可以不同当业务主键满足不了前面两点,可以再另外创建一个主键索引,业务主键用唯一索引来表示即可...原创 2020-10-22 19:54:59 · 231 阅读 · 0 评论 -
mysql---mysql中如何存储日期数据
一.DateTime类型1,特点1)以YYYY-MM-DD HH:MM:SS[.fraction]格式存储日期时间,在mysql5.6前可以只能存储到秒,在5.6后能存储到微秒2)datetime类型与时区无关,占用8个字节的存储空间3)时间范围公元1000-01-01 00:00:00到9999-12-31 23:59:59,存储的时间范围非常广二.timestamp类型1.特点:1)存储了由格林尼治时间1970年1月1日到当前时间的秒数,即时间戳, 以YYYY-MM-DD HH:MM:SS原创 2020-10-22 19:44:48 · 5398 阅读 · 0 评论 -
mysql---mysql中的整数和字符串类型
一.为表中的字段选择合适的数据类型的原则当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或者二进制类型,最后是字符类型,对于相同级别的数据类型,应该优先选择占用空间小的数据类型理由:1)在对数据进行比较时,字符类型处理与当前所使用的排序规则是相关的, 而数字和二进制是按照二进制大小来进行的,同样的数据,字符类型比数字处理慢2)在数据库中,数据处理 是以页为单位的,每页的大小是恒定的,在innodb中,每页的大小是16k,数据占用空间越小,页中能容纳的数据个数就越多,减少磁盘IO,有利原创 2020-10-22 19:10:30 · 707 阅读 · 0 评论