mysql
文章平均质量分 68
带鱼兄
爱在新空气,快乐每一天
展开
-
浅析存储引擎(3)-B-tree
浅析日志结构的存储引擎(1)-bitcask浅析日志结构的存储引擎(2)-SSTable和LSM-Tree前面两篇文章介绍了比较好理解的日志结构引擎LSM-Tree,但它们不是最常见的索引类型。目前最广泛使用的索引结构是B-tree。像SSTable一样,B-tree维护着按键排序的key-value对,这样可以实现高效的key-value查找和区间查询。一、B-tree的存储...原创 2020-03-07 17:57:28 · 2875 阅读 · 0 评论 -
MyISAM和InnoDB的区别
应用层的区别:1,MyISAM不支持外键,InnoDB支持,这是非关系型和关系型数据库的最大区别2,MyISAM不支持事务,InnoDB支持3,MyISAM不支持行锁,InnoDB支持,InnoDB也会退化为表锁4,MyISAM支持全文索引,InnoDB不支持(5.7版本后支持)5,MyISAM可以没有主键,InnoDB必须有(不设会内置)设计层的区别:1,先讲概...原创 2020-02-23 22:13:06 · 1122 阅读 · 0 评论 -
mysql查询char/varchar区分大小写
问题:mysql默认查询char/varchar时可能会遇到大小写不敏感的现象。解决办法1:建表时指定大小敏感-- 大小写敏感CREATE TABLE `test1` ( `str` char(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;-原创 2017-06-03 11:31:11 · 2905 阅读 · 0 评论 -
mysql char/varchar的区别
最需要关注的三点:存储定长:char:占用的存储空间固定,不由内容决定varchar:占用的存储空间不固定,由内容决定可用长度:char:上限255varchar:上限65535效率:char相对varchar更快对比:参考mysql5.7官网说明:https://dev.mysql.com/doc/ref原创 2017-06-03 11:48:17 · 491 阅读 · 0 评论 -
mysql统计每分钟增删改查语句次数
原理:每分钟定期采集mysql的增删改查数据(mysql实例启动以来的总数),描成曲线;show global status where variable_name in('com_select','com_insert','com_delete','com_update');原文出自:End;原创 2017-07-21 20:08:27 · 3748 阅读 · 0 评论 -
centos7源码安装mysql5.7
1.基础环境$ yum install gcc gcc-c++ $ yum install ncurses ncurses-devel $ yum install bison libgcrypt perl cmake2.创建用户$ cat /etc/group | grep mysql //查看是否存在mysql用户组$ cat /etc/passwd | gr原创 2017-02-21 21:38:55 · 863 阅读 · 0 评论 -
深入理解乐观锁与悲观锁
先说结论写多,冲突概率高,用悲观锁。读多写少,冲突概率低,用乐观锁。数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中...转载 2019-04-25 23:30:58 · 328 阅读 · 0 评论 -
乐观锁、悲观锁、共享锁、排它锁、行锁、表锁
乐观锁:是一种设计思想,场景是读多写少,冲突少,用数据版本号解决一致性悲观锁:是一种设计思想,场景是写多,冲突多,每次都加锁共享锁:又称读锁,用法SELECT ... LOCK IN SHARE MODE;排它锁:又称写锁,用法SELECT ... FOR UPDATE;行锁:InnoDB的行锁是针对索引加的锁,不是针对记录加的锁。并且该索引不能失效,否则都会从行锁升级为表锁。...原创 2019-04-26 17:29:31 · 263 阅读 · 0 评论 -
mysql事务隔离级别解读
一、mysql事务隔离级别,有几种?1.读未提交(read uncommitted)2.读提交(read committed)3.可重复读(repeatable read) - default4.串行化(serializable )二、场景分析:1.假设数据表 T 中只有1列,存在1行记录2.进行事务并发结果分别是读未提交:v1=2,v2=2...原创 2019-05-25 23:08:50 · 286 阅读 · 0 评论 -
mysql查看执行计划
首推官网文档,有对照表:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html测试表结构:CREATE TABLE `test` ( `index1` int(11) NOT NULL, `index2` int(11) NOT NULL, `value` varchar(255) NOT NULL DEF原创 2017-05-15 23:47:48 · 807 阅读 · 0 评论 -
mysql主主同步和replace into
前言:replace into 命令大家都挺熟的,在单实例情况下,可以做到防止主键冲突。问题:如果用mysql组成主主模式,这个时候使用replace into能不能防止双主间的主键冲突呢?答案:不能。如何模拟:a) 搭建主主模式的mysqlb) 创建测试表CREATE TABLE `test` ( `index` int(1原创 2017-03-25 23:53:42 · 1078 阅读 · 0 评论 -
SQL注入
基本概念:所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是转载 2016-04-10 14:58:37 · 820 阅读 · 0 评论 -
干货!MySQL 资源大全
分析工具性能,结构和数据分析工具Anemometer – 一个 SQL 慢查询监控器。innodb-ruby – 一个对 InooDB 格式文件的解析器,用于 Ruby 语言。innotop – 一个具备多种特性和可扩展性的 MySQL 版 ‘top’ 工具。pstop – 一个针对 MySQL 的类 top 程序,用于收集,汇总以及展示转载 2016-05-15 19:44:40 · 1557 阅读 · 0 评论 -
如果有人问你数据库的原理,叫他看这篇文章(下)
英文:Christophe Kalenzaga译者:伯乐在线 - Panblack链接:http://blog.jobbole.com/100349/简化的例子我们已经研究了 3 种类型的联接操作。现在,比如说我们要联接 5 个表,来获得一个人的全部信息。一个人可以有:多个手机号(MOBILES)多个邮箱(MAILS)转载 2016-05-05 00:42:23 · 1889 阅读 · 0 评论 -
如果有人问你数据库的原理,叫他看这篇文章(上)
英文:Christophe Kalenzaga译者:伯乐在线 - Panblack链接:http://blog.jobbole.com/100349/【小编提醒:本文内容丰富,分了上下篇。】一提到关系型数据库,我禁不住想:有些东西被忽视了。关系型数据库无处不在,而且种类繁多,从小巧实用的 SQLite 到强大的 Teradata转载 2016-05-05 00:11:03 · 1233 阅读 · 0 评论 -
MySQL 单表百万数据记录分页性能优化
背景:自己的一个网站,由于单表的数据记录高达了一百万条,造成数据访问很慢,Google分析的后台经常报告超时,尤其是页码大的页面更是慢的不行。测试环境:先让我们熟悉下基本的sql语句,来查看下我们将要测试表的基本信息use infomation_schemaSELECT * FROM TABLES WHERE TABLE_SCHEMA = ‘dbname’ AND转载 2016-06-25 20:33:29 · 1249 阅读 · 0 评论 -
ubuntu下安装mysql
环境:ubuntu 14联网安装命令:sudo apt-get install mysql-server my-client安装过程:输入Y进入到安装界面,在安装过程中,会弹出一个界面要求输入mysql的root的密码,在这里设置,后面就省事了。安装完成:修改mysql的配置,将只允许本机访问的限制去掉。sudo vim /etc原创 2016-10-26 22:50:26 · 337 阅读 · 0 评论 -
mysql5.7配置主从复制
1.先登陆master,检查bin_log是否开启$ mysql -uroot -h127.0.0.1 -p$ mysql> show binary logs;如果已开启,则重启二进制日志$ mysql> reset master;2.配置mastervim /etc/my.cnf #[必须]启用二进制日志 log-bin=mysql-bin原创 2017-02-21 21:56:48 · 624 阅读 · 0 评论 -
mysqlslap测试mysql性能
前言:mysqlslap是官方提供的压测工具,可以通过--help查看手册,下面列出一部分-u 用户-p 密码-h host-P 端口--auto-generate-sql, -a 自动生成测试表和数据,表示用mysqlslap工具自己生成的SQL脚本来测试并发压力。--auto-generate-sql-load-type=type 测试语句的类型。取值包括:read,ke原创 2017-02-24 18:03:37 · 2329 阅读 · 2 评论 -
MySQL的btree索引和hash索引的区别
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Ha转载 2016-01-18 22:34:26 · 873 阅读 · 0 评论