MySQL架构与历史 1. MySQL架构推荐参考:http://www.cnblogs.com/baochuan/archive/2012/03/15/2397536.html 2. MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询.决定表的读取顺序,以及选择合适的索引等.用户可以通过特殊的关键字提示(hint)优化器,影响它的决策过程. 也可以请求优化器解释(explain)优化过程的各个因素,使用户可以知道服务器如何进行优化决策的,并提供一个参考基准,…
Schema与数据类型优化 选择优化的数据类型 1.更小的通常更好 更小的数据类型通常更快,因为它们占用更少的磁盘,内存和CPU缓存 2.简单就好 简单数据类型的操作通常需要更少的CPU周期.例如:整型比字符操作代价更低,因为字符集和校对规则使字符比较比整型比较更复杂 3.尽量避免NULL 通常情况下最好制定列为NOT NULL,除非真的需要存储NULL值. 如果查询中包含可为NULL的列,对MySQL来说更难优化,因为可为NULL的列使得索引.索引统计和值比较都更复杂.可为NULL的列会使用更…
这是<高性能 MySQL(第三版)>第四章<Schema 与数据类型优化>的读书笔记. 1. 选择优化的数据类型 数据类型的选择原则: 越小越好:选择满足需求的最小类型.注意,增大数据类型的范围是耗时操作,尽量避免. 简单:整型比字符操作代价更低. 尽量避免 NULL 列:列最好指定为 NOT NULL,除非确实可以是 NULL.如果查询中包含可为 NULL 的列,会使索引.索引统计和值比较都更复杂.可为 NULL 的列占用更多存储空间,在 MySQL 里也需要特殊处理.如果可为…
mysql的高可用体系<>追求更高稳定性的服务体系 可扩展性:横向扩展(增加节点).纵向扩展(增加节点的硬件配置) 高可用性<>Slave+LVS+Keepalived实现高可用:在从库部署负载均衡器.<>安装配置LVS:相当于负载均衡器.我们选择在192.168.1.9主机名为linux04的服务器上安装LVS1.modprobe -l |grep ipvs查看当前操作系统是否存在lpvs模块.2.lsmod |grep ip_vs查看是否ip_vs内个模块是否被加载…
不久的学习笔记.分享.我想有很大的帮助谁刚开始学习其他人的 备注:该票据于mysql-5.1.73版本号例如 1. mysql源代码编译/安装步骤 1) 官网下载mysql源代码并解压 2) cd至源代码文件夹.运行 ./configure --prefix=/home/slvher/tools/mysql-5.1.73 --with-charset=gbk --with-charset=gb2312 --with-extra-charsets=all --with-plugins=max-no…
mysql的表对象是基于库维护的,也就是说它属于某个库,不管对象是由谁创建的,只要库在表就在.这根Oracle不同Oracle中的表对象是基于用户的.属于创建改对象的用户所有,用户在表就在.mysql中的数据库(database)和Oracle数据库中的数据库概念不同.每个mysql都是由多个数据库组成(创建好默认4个)而Oracle中的数据库则是一个整体.mysql默认的4个库information_schema:记录用户.表.视图等元素信息.提供类似oracle的数据字典功能,类似于orac…
-DSYSCONFDIR=/mysql/conf \ 所以在conf下建立my.cnf文件 vi my.cnf [client]port=3306socket=/mysql/conf/mysql.sock #The MySQL server[mysqld]port=3306user=mysqlsocket=/mysql/conf/mysql.sockpid-file=/mysql/conf/mysql.pidbasedir=/mysqldatadir=/mysql/datatmpdir=/mys…
一.数据类型优化 1.更小通常更好 应该尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为它们占用更少的磁盘.内存和CPU缓存,并且处理时需要的CPU周期更少,但是要确保没有低估需要存储的值的范围,如果无法确认哪个数据类型,就选择认为不会超过范围的最小类型. 案例:设计两张表,设计不同的数据类型,查看表的容量 2.简单就好 简单数据类型的操作通常需要更少的CPU周期,例如, 1.整型比字符操作代价更低,因为字符集和校对规则是字符比较比整型比较更复杂 2.使用mysql自建类型而…
用户登陆 mysql -u user_name -p 修改密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; 关闭服务 D:\mysql-winx64\bin>mysqladmin -u root -p shutdown OR D:\mysql-winx64\bin>net stop mysql 开启服务 D:\mysql-winx64\bin>net start mysql 显示并选择数据库 show datab…
1.mysql安装:(1)RPM安装:rpm -ivh xxx 建议安装三个:MySQL-server-VERSION.PLATFORM-cpu.rpmMySQL-client-VERSION.PLATFORM-cpu.rpmMySQL-devel-VERSION.PLATFORM-cpu.rpm安装后密码保存在/root/.mysql_secrest,安装好后通过mysql -uroot -p进去修改密码:set password for root@'localhost'=password("…
mysql是一种关系型数据库管理系统.以mysql5.7版本为例,安装过程如下: 首先百度出mysql的官网,进入:(以下是自己安装失败的过程,直接下拉最后看大佬的安装过程吧,就是那个红红的网址) 找到mysql的下载社区,找到对应的版本,这里以mysql5.7为例: 这里我们选择zip格式安装,对应的32位还是64位根据自己的电脑情况决定:网站直通车:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 这里下载msi格式的.然后双击…
4.1 选择优化的数据类型   通用原则   更小的通常更好   前提是要确保没有低估需要存储的值范围:因为它占用更少的磁盘.内存.CPU缓存,并且处理时需要的CPU周期也更少.   简单就好   简单数据类型的操作需要更少的CPU周期.   尽量避免NULL   值可为NULL的列使得索引.索引统计和值比较都更复杂化.可为NULL的列会使用更多的存储空间.   整数类型   TINYINT SMALLINT MEDIUMINT INT BIGINT.分别使用8,16,24,32,64位存储空间…
1.数据类型 1.1.几个参考优化原则 a.  更小的通常更好 i.更小的数据类型,占用更少磁盘.内存和CPU缓存,需要的CPU周期更少 ii.如果无法确定哪个数据类型是最好的,就选择不会超过范围的最小类型 b.  简单就好 i.简单数据类型的操作仅需少量的CPU周期,EX:整形比字符操作代价更低 c.  尽量避免null i.null将使索引.索引统计和值比较更复杂. ii.可null的列需要更多空间 iii.在MyISAM引擎里甚至还可能导致固定大小的索引变成可变大小的索引 1.2.整数类型…
一.数据库基本介绍 目标:了解数据库的功能和常见数据库分类.数据库产品 数据库基本知识 数据库分类 SQL简介 MySQL访问 1.数据库基本知识 目标:了解数据库的概念和数据库的作用 概念 数据库:database(DB),是一种存储数据的仓库 数据库是根据数据结构组织.存储和管理数据 数据库能够长期.高效的管理和存储数据 数据库的目的就是能够存储(写)和提供(读)数据 2.数据库分类 目标:了解数据库的分类模式,以及分类的依据 概念 数据库分类:根据数据库的架构和数据组织原理进行分类 1.早…
用了两天的时间终于把MySql安装好了,还是很麻烦的,之所以没有选择直接安装,使用的是免安装版本,主要是想了解这个数据库的配置,这样以后就可以更好的了解它了. 登录MySql:mysql –h localhost –P 3306 –u root –p  这样就可以直接登陆了. 一些常用的命令: 查看一些配置信息: \s 1:创建一个名为my_db的数据库: create database mydb1; 2:创建一个使用gbk字符集的mydb2; create database mydb2 cha…
4.5 加快ALTER TABLE 操作的速度 原理: MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题. MySQL 执行大部分修改表结构操作的方法是用新的结构创建一个空表,从旧表中查出所有数据插入新表,然后删除旧表.这样操作可能需要花费很长时间,如果内存不足而表又很大,而且还有很多索引的情况下尤其如此 特点: 大部分ALTER TABLE 操作将导致MySQL 服务中断 ALTER TABLE 本质是建新结构的表,从旧表插入数据到新表 (SHOW STATUS 显示这个语…
STRUCTURE QUERY LANGUAGE 数据库CRUD操作 DDL: 数据库定义语言,定义数据库数据表结构 CREATE(创建): 创建数据库 CREATE DATABASE 数据库名字; 例如:CREATE DATABASE DAY01; 创建数据库指定字符集 CREATE DATABASE 数据库名字 CHARECTAER SET UTF8; CREATE ADTABASE DAY01_1 CHARACTER SET UTF8; 指定校对规则 CREATE DATABASE DAY…
选择优化的数据类型 MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要.不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择: 更小的通常更好一般情况下,应该尽量使用可以正确存储数据的最小数据类型.更小的数据类型通常更快.因为它们占用更少的磁盘.内存和CPU缓存,并且处理时需要的CPU周期也更少.但是要确保没有低估需要存储的值的范围,因为在schema中的增加数据类型的范围是一个非常耗时和痛苦的操作.如果无法确定哪个数据类型是最好的,就选择不会超过范围的最小类型…
总结作为开发人员重点注意的内容!这是一篇有关高性能MYSQL第四章schema相关的笔记. 0.前言 在项目中,数据库表列有两个text字段,用来存储大文本,在数据规模达到40万后,如果查询没命中索引,发现耗时会达到5s以上,在表中删除这两个大字段后,就算全表扫描,耗时也不过0.6s左右. 解决方案: 将这类不常参加查询的大字段放入详情表中,但对现有程序影响过大(懒). 查询字段统统加上索引. 1.选择合适的数据类型 选择合适的数据范围,能用 tinyint 不用 int. 字段越简单越好.存储…
MySQL高级特性 1. 分区表:分区表是一种粗粒度的.简易的索引策略,适用于大数据量的过滤场景.最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分区和索引 能够在内存中:限制单表分区数不要超过150个,并且注意某些导致无法分区过滤的细节,分区表对单条记录的查询并没有什么优势,需要注意这类查询的性能. 1). 对于用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成.实现分区的代码实际上是对一组底层表的句柄对象(Handler)的封装…
step1:查看 1.1 Mysql命令行里输入"show engines:"查看innoddb数据引擎状态, 1.2 show variables "%_buffer%"里查看innodb_buffer_pool_size的数值,默认是8M(太小,需要改大一点!) step2:找配置文件,修改innodb_buffer_pool_size=64M 2.1 在linux里配置文件是my.cnf,windows里是my.ini(注:不是my-default.ini).…
Schema是什么鬼 schema就是数据库对象的集合,这个集合包含了各种对象如:表.视图.存储过程.索引等.为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema.所以schema集合看上去像用户名. 如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个schema的主人,有操作数据库中每个房间的权利,就是…
良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计schema,这往往需要权衡各种因素. 例如,反范式的设计可以加快某些类型的查询,但同时可能使另一些类型的查询变慢:添加计数表和汇总表是一种很好的优化查询的方式,但这些表的维护成本可能会很高. 选择优化的数据类型 MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要.基本原则为: 更小的通常更好:一般情况下尽量使用可以正确存储数据的最小数据类型,更小的数据类型通常更快,因为其占用更少的磁盘.内存和CP…
1.前言 本系列记录MYSQL数据库的一些结构和实现特点,方便查询. 2.基本概念 数据库:物理操作系统文件或者其他形式文件类型的集合.MySQL中数据库文件可以是frm.MYD.MYI.ibd结尾的文件.使用NDB引擎时,可以是内存中的文件. 实例:MySQL数据库由后台线程以及一个共享内存区组成.共享内存可以被运行的后台线程所共享.MySQL数据库实例在系统上的表现就是一个进程. 2.2 MySQL体系结构 这是MySQL的一个体系结构.可以看出大致分成了四层: 第一层:处理客户端连接的连接…
第一层:连接处理.授权认证.安全 第二层:mysql的核心功能,包括查询解析.分析.优化.缓存以及所有的内置函数(例如日期.加密.数学函数), 所有跨存储引擎的功能都在这一层实现:存储过程.触发器.视图等.…
基本原则: 更小的通常更好:占用更少的磁盘 内存和cpu缓存.如varchar(2)和varchar(100). 简单就好:比如整形比字符型代价更低.使用日期型来存储日期而不是字符串.使用整形存储ip地址. 尽量避免null:如果可以 加上not null约束.因为可以null的列使索引,索引统计,值比较都变得复杂.通常把可为null的列改为not null带来的性能提升比较小,调优时没有必要首先修正这种情况来排查问题.但是如果计划在列上建立索引,如果可以保证是not null,那么尽量加上.…
1.数据类型 http://www.cnblogs.com/YDDMAX/p/4937770.html…
一.注释 1.单行注释 使用方法:行首加 ” //“: VS2019中的快捷键(以后如果不特加说明都是VS2019): 注释(CTRL+E,C): 取消注释(CTRL+E,U): 2.多行注释 使用方法:在需要注释的行用  “/*    */” 包裹: 注:多行注释不能嵌套使用! 二.进制 1.二进制(0-1)0b/BIN.八进制(0-7)0/OCT.十进制(0-9)DEC.十六进制(0-9  A-F)0x/HEX 2.进制之间的转换 1>  十进制转其他进制(连除倒取余) 直到商为0为止: 2…
良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询数据来设计schema,这往往需要权衡各种因素. MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要. 更小的通常更好 一般情况下,应该尽量使用可以正确存储数据的最小数据类型.更小的数据类型通常更快,因为它们占用更少的磁盘,内存和缓存.并且处理时需要的CPU周期也更少. 简单就好 简单数据类型的操作通常需要更少的CPU周期.(应该使用MySQL内建的类型而不是字符串来存储日期和时间,应该用整型来存储IP地址)…
1.Schema schema,中文叫模式,是数据库的组织和结构 2.选择优化的数据类型 更小的通常更好:尽量使用可以正确存储数据的最小数据类型 简单就好:简单数据类型的操作通常需要更少的cpu周期.例如:整型比字符操作代价更低 尽量避免NULL:因为可为NULL的列使得索引.索引统计和值比较都更复杂,也会使用更多的存储空间 3.BLOB和TEXT BLOB和TEXT都是为存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储. BLOB和TEXT家族之间仅有的不同是BLOB类型存储…