MySQL学习总结(三)索引】的更多相关文章

一.概述 1.基本概念       在大型数据库中,一张表中要容纳几万.几十万,甚至几百万的的数据,而当这些表与其他表连接后,所得到的新的数据数目更是要大大超出原来的表.当用户检索这么大量的数据时,经常会感觉慢.这个时候要提高数据库的检索性能,就必须要用到索引.给表追加合适的索引能极大的改善数据检索的效率,提供数据库性能.      索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,而且每种存储引擎也不一定支持所有的索引类型.      所有存储引擎支持每个表至多16个索引,总索…
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ #CURDATE()与CURRENT_DATE()作用同样,返回同样的系统当前日期 #CURDATE()+0则将当前日期值转换成数值类型 SELECT CURDATE(), CURRENT_DATE(), CURDATE()+0; /* CURTIME()和CURRENT_TIME()作用同样.将当…
MySql学习笔记三 4.DML(数据操作语言) 插入:insert 修改:update 删除:delete 4.1.插入语句 语法: insert into 表名 (列名1,列名2,...) values (值1,值2,...), (值1,值2,...)... 不可以为NULL的列必须插入值,可以为NULL的值要想插入NULL值,必须在values里写NULL 也可以在字段列表里不写该字段,当新增时该字段的值就为NULL 列的顺序时可以随便调换的,列数和值的个数必须一致 插入整条数据时可以省去…
本文出处:http://blog.csdn.net/u012377333/article/details/47006087 接上篇介绍<基于CentOS的Mysql学习补充二--使用Shell创建数据库>,本文继续探索关于Shell和MySQL的结合使用,我不知道当一个数据库设计完毕之后怎样高速的创建设计好的数据库表和加入对应基本数据,我眼下知道的就是使用Shell和SQL脚本来达到我的目的--高速的.多次的.可反复利用的创建数据库表. 创建一个数据库表的SQL脚本: /***********…
本文参考了多篇文章集成的笔记,希望各位学习之前可以阅读以下参考资料先 概述 文章分几个部分 :第一部分介绍了B-Tree 和 B+Tree 这种数据结构作为索引:第二部分介绍索引的最左前缀原则和覆盖索引 :第三部分讲了一下主键优化及 explain 的相关资料:主要是要结合实例去理解,不然也好难记忆这些概念.同时MySQL 官方的 DOC 真的是大大的良心,可以在实践使用过程中遇到问题,查询资料,了解概念过后,作为系统学习的第一手资料! 数据结构 我们知道MySQL  InnoDB 引擎和MyI…
这一节主要介绍MYSQL里的函数,MYSQL里的函数很多,我这里主要介绍MYSQL里有而SQLSERVER没有的函数 数学函数 1.求余函数MOD(X,Y) MOD(X,Y)返回x被y除后的余数,MOD()对于带有小数部分的数值也起作用,他返回除法运算后的精确余数 SELECT MOD(31,8) 2.四舍五入函数TRUNCATE(X,Y) TRUNCATE(X,Y)返回被舍去至小数点后y位的数字x.若y的值为0,则结果不带有小数点或不带有小数部分. 若y设为负数,则截去(归零)x小数点左边起第…
1.MySQL主备切换 readonly 设置对超级(super)权限是无效的,而用于同步更新的线程,就拥有超级权限. 建议在做主备数据库的时候,将备用数据库设置为只读.(反向用readonly来判断节点的角色) 主备的同步是通过 binlog 日志同步,流程: 1).备库上通过 change master 命令,设置主库的 IP.端口.用户名.密码,以及从哪个位置开始请求 binlog,这个位置包含了文件名称和日志偏移量: 2).备库执行 start slave 命令,备库会启动两个线程.其中…
一.索引的优点:查询速度快 二.索引的缺点: 1. 增.删.改(数据操作语句)效率低了 2. 索引占用空间 三.索引类型: 1. 普通索引 2. 唯一索引(唯一键) 3. 主键索引:只要主键就自动创建主键索引,不需要手动创建 4. 全文索引,搜索引擎使用,mysql不支持中文的全文索引,我们通过sphinx去解决中文的全文索引 四.创建索引 1. 创建普通索引 a. 语法:create index 索引名 on 表名 (字段名) alter table 表名 add index [索引的名称]…
要点: 1.存储引擎2.导入导出3.备份与恢复 查看当前数据库中的所有表use db1:show tables: 1.存储引擎 不同的发动机(引擎)适用的汽车类型不一样. 存储和处理的不同方式.不同的存储引擎适用的应用场景也不同. MySQL 插件式存储引擎是MySQL独有的设计,主要引擎有以下两种: myisam InnoDB 1.1 myisam存储引擎 MySQL5.5版本之前的默认存储引擎.创建表对象时,如果没有显式指定表的存储引擎,那么这个表就是myisam表. 创建一个myisam表…
本章我们着重讨论MySQL锁机制的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议. 一.MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking):BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁:InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是…
其实在数据库最经常用的当属查询操作 基本语法 SELECT [ALL | DISTINCT | DISTINCTROW ] 字段列表 AS 字段别名 [FROM 表名 WHERE 条件表示式 GROUP BY 字段名|表达式 [ASC | DESC], ... [WITH ROLLUP]] [HAVING 条件表达式] [ORDER BY 字段名|表达式 [ASC | DESC] , ...] [LIMIT {[offset,] row_count | row_count OFFSET offs…
1.MySQL数据库服务配置好后,系统会有4个默认的数据库. information_schema:虚拟对象,其对象都保存在内存中 performance_schema:服务器性能指标库 mysql:记录用户权限,帮助,日志等信息 test:测试库 查看当前的所有数据库: show databases //只显示当前用户拥有权限访问的所有数据库 删除数据库 drop database if exists db_name 创建数据库 create database if not exist db_…
MYSQL版本介绍 mysql分alpha,beta,rc,GA四个版本. alpha  暗示这是一个以展示新特性为目的的版本,存在比较多的不稳定因素,还会向代码中添加新新特性beta 以后的beta版.发布版或产品发布中,所有API.外部可视结构和SQL命令列均不再更改,不再向代码中添加影响代码稳定性的新特性.rc 是指 Release Candidate. Release candidates被认为是稳定的, 通过了mysql所有的内部测试, 修正了所有已知的致命bug. 但是rc版本还没有…
Mysql数据类型 小数: 浮点:小数位可以变化 Float单精度默认精度6位左右 Double 双精度默认精度16位左右 支持,控制数值范围 Type(M,D) M表示所有数值位数(不包括小数点和符号) D 表示允许的小数位数. 不符合的都错误 支持科学计数法 定点数: Decimal(M,D) M总位数 D小数位数 M默认10 D默认0 四舍五入 支持zerofill和unsigned(显示范围不变,和int不同) 日期时间: 时间戳 存储时,整型,表示时仍然是日期时间(插入和读取时按照da…
一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是null. 二:数值函数 注意的几个细节: 1.truncate(x,y) 和 round(x,y) 都能截断,只是round会四舍五入,而truncate不会. 三:日期和时间函数 四:流程函数 五:其他函数…
mysqldump -u root -p booksdb > C:/backup/booksdb_20180316.sql # 使用mysqldump命令备份数据库中的所有表 mysqldump -u root -p booksDB books > C:/backup/books_20180316.sql # 备份booksDB数据库中的books表 mysql -u root -p booksDB < C:/backup/books_20180316.sql # 使用mysql命令还原…
一.数学函数 绝对值函数ABS():ABS(X) 返回圆周率函数PI() 平方根函数SQRT() 求余函数MOD(X,Y) 获取整数函数CEIL(X),CEILING(X)返回不小于X的最小整数:FLOOR(X)返回不大于X的最大整数 获得随机数函数RAND()范围0-1 返回最接近X的整数ROUND(X),对X的值进行四舍五入:ROUND(X,Y)返回最接近于参数X的数,其值保留到小数点后边y位,如果y位负数,则将保留X的值到小数点左边y位 返回被舍去至小数点后y位的数字X.如果y为0,则结果…
连接连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据.在 WHERE子句中书写连接条件. 如果在多个表中出现相同的列名,则需要使用表名作为来自该表的列名的前缀. N个表相连时,至少需要N-1个连接条件. 第七天(2018/8/1) 日期时间函数 CURDATE()和CURRENT_DATE() :获取当前日期函数; NOW():返回服务器的当前日期和时间: CURTIME():返回当前时间,只包含时分秒: UTC_DATE():返回世界标准时间日期函数: UTC…
前言 mysql安装完后默认只有命令行工具,所以我们可以下载一些数据库管理工具Navicat Navicat使用 首先建立一个连接选择mysql,填写信息 发现多了一个localhost,双击,打开连接,右键可以取消连接 右键新建数据库,输入数据库名.字符集(utf-8).排序规则(utf8_general_ci/通用规则) 点击确定发现多了一个数据库,但是是灰色的,双击可以打开,需要的话右键可以关闭 右键新建表,填写字段信息(长度够用就好,太长会浪费空间降低性能,最长255),勾选不是null…
事务隔离级别     SQL标准的事务隔离级别包括:读未提交(read uncommitted).读提交(read committed).可重复读(repeatable read)和串行化(serializable ). 读未提交是指,一个事务还没提交时,它做的变更就能被别的事务看到. 读提交是指,一个事务提交之后,它做的变更才会被其他事务看到. 可重复读是指,一个事务执行过程中看到的数据,总是跟这个事务在启动时看到的数据是一致的.当然在可重复读隔离级别下,未提交变更对其他事务也是不可见的. 串…
-- 主键冲突(duplicate key) ,'xujian','anhui'); ,'xiewei','anhui'); ,'luyang','anhui');-- 主键冲突了 -- 可以选择性的进行处理,更新或替换 -- 主键冲突:更新操作 ,'xiewei','liuan') on duplicate key update address='liuan'; -- 主键冲突:替换操作 ,'luyang','hefei'); select * from user; -- 蠕虫复制:从已有的数…
-- 多表连接 -- 写一条查询语句,查询员工姓名.部门名称.工作地点 select ename,dname,loc from emp,dept where emp.deptno = dept.deptno -- 练习1 -- 1.写一个查询,显示所有员工姓名.部门编号.部门名称 select ename,dept.deptno,dname from emp,dept where emp.deptno = dept.deptno -- 2.写一个查询,显示所有工作在CHICAGO并且奖金不为空的…
-- 日期和时间函数 -- 获取当前日期 select curdate(),current_date() from dual -- 返回服务器当前的日期和时间 select NOW(),SYSDATE() from dual -- 返回当前时间 select CURTIME() from dual -- 返回世界标准日期时间 select UTC_DATE(),UTC_TIME() from dual -- 返回两个日期相差时间 ') from dual -- 返回两个时间相差天数 select…
-- 流程控制函数 -- 1.查询员工部门号,并赋予部门名 select empno,ename,deptno,case deptno then '10部门' then '20部门' else '30部门' end from emp -- 2.判断工资小于1000,小于4000,大于4000 then '大穷鬼' then '中等穷鬼' else '大老板' end from emp -- 3.判断为真 ,'2大','1大') from dual -- 4.判断为假 ,'2大','1大') fr…
1.AVG() 求平均数 select avg(prod_price) as avg_price from products; --返回商品价格的平均值 ; --返回生产商id为1003的商品价格平均值 2.COUNT():确定表中行的数目或者符合特定条件的行的数目 select count(*) as num_cust from customers; --统计customers表中的顾客数 select count(email) as num_cust from customers; --统计…
创建高性能索引 (一)索引简介 索引的定义 索引,在数据结构的查找那部分知识中有专门的定义.就是把关键字和它对应的记录关联起来的过程.索引由若干个索引项组成.每个索引项至少包含两部分内容.关键字和关键字对应记录在存储器位置信息.索引是组织磁盘文件的一种重要的技术. 数据库的数据量通常比较大,都是存储在磁盘上.通过存储引擎对磁盘文件的数据进行管理.而索引是存储引擎御用快速找到记录的一种数据结构. 2.索引的优点 (1)大大减少服务器需要扫描的数据量. (2)索引可以帮助服务器避免排序和临时表. (…
我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(十二) 触发器 我的MY…
我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(十一) 视图 我的MYSQL学习心得(十二) 触发器 我的MY…
PS:上网再次看了一下数据库关于索引的一些细节...感觉自己学的东西有点少...又再次的啃了啃索引.... 学习内容: 索引查询优化... 上一章说道的索引还不是特别的详细,再补充一些具体的细节... 1.B-Tree索引... B-tree结构被称为平衡多路查找树...其数据结构为:   这就是其数据结构图...我们没必要完全的理解其中的原理..并且我也不会做过多的原理介绍...我们只需要知道数据库是以这种方式进行存储数据的就可以了... mysql> create table title -…
MySQL中的联合索引学习教程 这篇文章主要介绍了MySQL中的联合索引学习教程,其中谈到了联合索引对排序的优化等知识点,需要的朋友可以参考下   联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分.例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效. 两个或更多个列上的索引被称作复合索引. 利用索引…