MYSQL
文章平均质量分 69
MYSQL的使用和优化
珠峰之巅-程序员
这个作者很懒,什么都没留下…
展开
-
备份和恢复
备份的准则:1.有规律的备份2.使用binary log以至于你可以由改变的记录在一个给定的备份3.flush这日志当备份以至于服务器将开始一个新的二进制日志文件相对于备份的时间4.存储你的数据目录和你的被在不同的物理设备以至于一个5.包含你的备份在你的normal文件系统以至于你能够恢复备份32.2 Binary Versus Textual Backups1.一个二原创 2016-08-06 16:21:07 · 402 阅读 · 0 评论 -
31.1 inforMATION_SCHEMA aCcess syntax
select table_name from informatin_schema.tables where table_schema='information_schema';查询表 select column_name from information_schema.columnswhere table_schema='information_schema'and table原创 2016-08-06 15:50:41 · 338 阅读 · 0 评论 -
表的维护
30.1 表的维护操作的类型1.一个表检查执行一个完整性检查来确保表的结构和内容没有问题。这个操作能够被做对于MyISAM和InnoDB表2.一个表的修复更正完整性问题来修复表到一个已知和可使用状态。这个可以使用MyISAM表来做。3.一个表的分析更新数据关于索引键值的分布。一个优化者可以使用的信息来产生更好的执行计划对于表的查询。这个操作可以由MyISAM和InnoDB存储引擎来做。原创 2016-08-06 15:35:55 · 525 阅读 · 0 评论 -
存储引擎
前言在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库。而在设计表的时候,我们都会关注一个问题,使用什么存储引擎。等一下,存储引擎?什么是存储引擎?什么是存储引擎?关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常转载 2016-08-06 14:30:52 · 763 阅读 · 0 评论 -
建议锁
一个建议锁是一个cooperative lock。那就是说,一个建议锁没有能力阻止数据的访问,但是所有的客户端可以使用一种沟通的谈话机制来合作使用一种资源。使用如下的GET_LOCK()函数来获得建议锁:》select GET_LOCK(‘my lock’,5);第一个参数表明被锁的名字,第二个参数是超时的值表明多长的时间等待锁如果它不能直接获得。如果成功将返回1,如果超时发送将返回0原创 2016-08-06 14:24:33 · 384 阅读 · 0 评论 -
使用LOCK
多个用户同时访问表时,必须加LOCK。一个reader必须阻塞writers,不用阻塞readers。但是一个writer必须住的是reader和writer1.不用明确的指定锁2.如果不明确的锁对于客户端是不明确的,它能偶明确的使用LOCK TABLES释放他们使用UNLOCK TABLES。另外的一种类型的锁是合作锁,建议锁并不锁定任何数据他们和其他的用户合作完成。 1原创 2016-08-06 14:11:30 · 878 阅读 · 0 评论 -
字符集
1.性能的问题1.合理的选择字符集可以节约disk,memory空间,使用/configure来启动查看可以使用的字符集./configure --help./configure --with-charset=latin1 \ --with-extra-charsets =utf8,ucs227.2 选择数据类型对于字符列在varchar需要一个额外的字节存储char的长度原创 2016-08-06 10:55:26 · 261 阅读 · 0 评论 -
系统协议
1.TCP/IP local,remote all2.Unix soket file local only unix only3.named pipe local only windows only4. shared memory local only windows onlyTCP/IP连接被支持有任何Mysql除非--skip-net原创 2016-08-02 17:24:31 · 516 阅读 · 0 评论 -
一般的查询加载
1.查询重写技术 1 不要引用索引列在一个表达式。这样将阻止使用索引列。代替是应该在比较的边使用尽可能的。加入一个表t包含一个date d列。 如下select * from t where year>=1884代替使用select * from t where d>='1994-01-01'; 2.索引是特别有用的对于连接比较两个表中的列如下: select* fro原创 2016-07-30 16:42:15 · 413 阅读 · 0 评论 -
MYSQL优化
1.基本的优化技术是为了减少查找的次数来使用索引技术。2.查询被写的方式可能阻止索引被使用尽管他们是可以使用的。3.这EXPLAIN语句提供关于MySQL优化处理查询的信息4.某种情况下,查询处理任务能够被提高通过使用不同方式对于这个问题,这包括产生中间表而不是直接选择原生数据5.选择合适的存储引擎可以提高效率22.2 使用INDEx来优化 索引的好处: 1.索引翻译 2016-07-30 16:04:46 · 935 阅读 · 1 评论 -
debug
1.select* from no_such_table;可以使用下面的方式来获取帮助在翻译诊断信息时:1.show warnings 和show errors语句来展示警告和错误信息关于语句来产生诊断信息2.perror命令行来展示操作系统相关的错误代码21.2 这SHOW WARNINGS语句“Warnings”能够真正方式在几个不同的安全水平:1.Error mess原创 2016-07-30 15:29:59 · 372 阅读 · 0 评论 -
元数据
1.这INFORMATION_SCHEMA数据库被实现。它提供更好的编译使用标准的SQL因为INFORMATION_SCHEMA是标准的,不是一个MYSQL指定的扩展像SHOW。2.SHOW语句语法扩展到支持一个where语句来描述那些行被展示20.2 使用INFORMATION_SCHEMA来获得metadataselect table_name from information_s原创 2016-07-30 09:16:30 · 238 阅读 · 0 评论 -
触发器
1.一个触发器能够坚持行值被插入或被更新,和它能坚持什么值被删除或什么值被更新2.触发器能够改变值在它们被插入表前或被用来更新一个表。例如,你能检测是否超过了范围和修改它们在范围内。3.你能够修改如何插入,删除或更新工作。例如,在一个插入,你能够提供一个默认的值如日期使用当前时间做默认值。19.2 trigger conceptscreate trigger Capital_bi原创 2016-07-30 08:18:36 · 321 阅读 · 0 评论 -
存储过程
definer:在执行存储过程前验证definer对应的用户如:root@192.168.2.%是否存在,以及是否具有执行存储过程的权限,若没有则报错 invoker:在执行存储过程时判断inovker即调用该存储过程的用户是否有相应权限,若没有则报错。 LANGUAGE SQL :说明routine_body部分是由SQL语句组成的,当前系统支持的语言为SQL,SQL是L原创 2016-07-29 23:41:22 · 347 阅读 · 0 评论 -
存储过程
set global log_bin_trust_routine_creators=1;18.1 存储过程的好处出错过程和函数提供几个好处对于应用程序开发,配置和操作: 1.更加灵活的SQL语法 2.错误处理能力 3.标准的编译 4.代码的包装和封装 5.更容易理解 6.容易维护 7.减少网络带宽的需要 8.更好原创 2016-07-29 20:15:50 · 334 阅读 · 0 评论 -
预处理
17。1 预处理语句的优点MYSQL服务器支持预处理语句,执行多次,不同值,性能好,因为完成语句解析一次。17.2 using prepared statements from the mysql clientprepare my_stmt FROM 'select count(*) from countrylanguage where countrycode=?';>set @原创 2016-07-29 19:34:30 · 290 阅读 · 0 评论 -
16.1 用户变量语法
set @var1='usa';set @var2:='GBR';select @var3:='CAN';16.2 用户变量的性质用户变量不是大小写敏感的。用户变量被使用在一个连接而不能被其他的连接使用。当一个连接结束时,所有其他的用户变量丢失。原创 2016-07-29 19:21:58 · 316 阅读 · 0 评论 -
导入和导出
15.1 导入和导出操作MYSQL有两种SQL语句来用来导入数据从文件中到数据库或导出数据从数据库中到文件: 1.LOAD DATA INFILE 读取数据记录从文件中和插入他们到一个表中 2.select 。。。into OUTFILE 写一个select操作的结果到一个文件中命令行有mysqlimport和mysqldump15.2 导入和导出使用SQL15.2原创 2016-07-29 16:39:52 · 366 阅读 · 0 评论 -
视图
1.4 使用视图的原因 1.一个视图可以展示计算结果 2.视图可以限制某些展现的列 3.视图可以用来选择数据重多个表中 4.视图可以用来展示对于不同的用户展示不同的内容 5.如果你没有改变表的结构来适应可能的应用程序,视图可以保存元素表结构来最小化损坏其他的应用程序。14.2 创建视图 create [or replace ]原创 2016-07-29 14:47:24 · 255 阅读 · 0 评论 -
子查询
13.7.1 转子查询为内连接select name from countrywhere code in (select countrycode from countrylanguage);1.移动CountryLanguage表到From支局2.这where语句表这代码列和返回的country代码列比较,转换In表达式为明确的比较在country代码列。select name原创 2016-07-29 00:05:44 · 280 阅读 · 0 评论 -
子查询
13.1 子查询的类型1. Scalar subqueries 返回单独的值2.Row subqueries 返回单独的行3.column subqueries 返回单独的列可能有多行4.table subqueris 返回结果带有多行或多列 select language from countryLanguagewhere CountryCode =(select c原创 2016-07-27 17:18:21 · 385 阅读 · 0 评论 -
外连接
1.左外连接与内连接的区别: 1.如果一个左表的行和右表的行匹配,这结果包含左表的行和右表的行,这些也是内连接产生的行 2.如果坐标的行不匹配右表的任何行,这结果包含左表的行和右表的NULL值行。 2.对于每个查询可以展示同时匹配和没有匹配的,null值识别输出行没有匹配的3.如果感谢去没有匹配的行,可以增加一个条件限制输出仅仅包含空值,如下:select name原创 2016-07-27 16:32:07 · 481 阅读 · 0 评论 -
8.6 索引
索引需要讨论的如下:1.索引的类型2.定义索引在表的创建时3.使用初始化键值4.增加索引到存在的表使用alter table或create index 3.删除索引alter table或者drop index4.选择索引算法8.6.1 索引的类型1.键值primary key 是一个索引2.唯一索引和键值索引是相似的,但是允许为NULL3.一个非唯一的索引是一个索引任何的值可原创 2016-07-26 16:55:57 · 241 阅读 · 0 评论 -
8.2.4临时表和正式表
区别:1.不同的客户端可以创建名字相同的临时表而没有冲突 2.一个临时表被创建仅仅在连接期间,当客户端断开连接时自动删掉临时表。3.一个临时表可以和一个非临时表有同样的名字。4.一个临时表可以被重新命名只能使用alter而不能使用rename table。临时表和内存表的区别是,内存表在服务器重启是丢失。8.3 修改表在创建表后,修改表增加一列alter table原创 2016-07-26 16:06:16 · 421 阅读 · 0 评论 -
表和索引
1.表都有结构以表明和.frm来命名的 这个MyISAM引擎创建表和索引,如果Country是一个MyISAM表,这个MyISAM存储引擎创建命名为Country.MYD和Country.MYI来存储数据的行和索引 默认情况下InnoDB引擎共享文件对于多个表,如果Country是一个InnoDB表,有Country.frm被创建 这个MEMORY引擎不适用任何磁盘存储,它管理表原创 2016-07-26 10:54:23 · 380 阅读 · 0 评论 -
9.2.1 Renaming Retrieved Columns
为了命名一个列名。select 1 as one ,4*2 'for Times Three';1.这关键字AS是可选的2.一个别名可能是引用3.不能再where语句中使用别名9.3指定哪一行被获得 or9.3.1 使用order by to 排序query结果默认是按升序排列9.3.2 数据类型的自然排序1.一个数值类型排序是升序按大小2.一个时间默认按升原创 2016-07-26 18:49:24 · 314 阅读 · 0 评论