
mysql
文章平均质量分 66
艾伦蓝
Just do it
展开
-
mysql 技术内幕学习
ng[/img][img]http://dl2.iteye.com/upload/attachment/0130/9053/c89c618e-6a06-3691-a2cf-a2dc3683d16c.png[/img][img]http://dl2.iteye.com/upload/attachment/0130/9055/57296e55-4dd8-3568-a144-67452930c317.png[/img][img]http://dl2.iteye.com/up原创 2018-10-22 12:42:21 · 216 阅读 · 0 评论 -
mysql 事务隔离级别
EVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE}[/code][color=red]注意:默认的行为(不带session和global)是为下一个(未开始)事务设置隔离级别。[/color]如果你使用GLOBAL关键字,语句在全局对从那点开始创建的所有新连接(除了不存在的连接)设置默认事务级别。你需要SUPER权限来做这个。使用SESSION 关键字为将来在当前连接上执行的事务设置默认事务级别。 任原创 2014-08-25 12:00:45 · 101 阅读 · 0 评论 -
mysql cpu占100%调优案例
32M。[/color]如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,[color=blue]如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。[/color] 这是 mysql 官方关于此选项的解释: tmp_table_size This variable determines the maximum size for a temporary table in memory. If the ta原创 2014-08-23 21:44:45 · 121 阅读 · 0 评论 -
mysql cursor使用
[size=large][b]二,游标(cursor)的特性[/b][/size]1,只读的,不能更新的。2,不滚动的3,不敏感的,不敏感意为服务器可以或不可以复制它的结果游标(cursor)必须在声明处理程序之前被声明,[color=red]并且变量和条件必须在声明游标或处理程序之前被声明。[/color][size=large][b]三,使用游标(cursor)[/b][/size]1.声明游标[code="sql"]DECLARE cursor原创 2014-08-22 20:24:44 · 231 阅读 · 0 评论 -
mysql 查看表数据量
racle记录的那么多和详细,但也足够我们查询这些信息了。 在mysql的[color=red]information_schema[/color]下有存储数据库基本信息的数据字典表,[color=blue]可以通过查询tables表来获得所需要的表相关信息。[/color][code="sql"]mysql> show databases;+--------------------+| Database |+--------原创 2014-08-22 16:55:45 · 177 阅读 · 0 评论 -
mysql mysqldump导入导出
nc.sql[/code][color=red](2)导出一个表[/color][code="cmd"]mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql[/code][color=red](3)导出一个数据库结构[/color][code="cmd"]mysqldump -u w原创 2014-08-22 16:32:23 · 99 阅读 · 0 评论 -
mysql DATE_FORMAT() 函数
ue]date 参数是合法的日期。format 规定日期/时间的输出格式。[/color]可以使用的格式有:[code="txt"]格式 描述%a 缩写星期名%b 缩写月名%c 月,数值%D 带有英文前缀的月中的天%d 月的天,数值(00-31)%e 月的天,数值(0-31)%f 微秒%H 小时 (00-23)%h 小时 (01-12)%I 小时 (01-12)%i 分钟,数值(00-59)%j 年的天 (001-366)原创 2014-08-22 16:23:31 · 116 阅读 · 0 评论 -
MySQL性能调优 - Table_cache(table_open_cache)
原创 2014-08-14 16:12:51 · 2290 阅读 · 0 评论 -
mysql infile/outfile 导入导出
O OUTFILE 'D:/sql/test.txt'FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"'FROM test;[/code]说明: -- FIELDS 指定字段的参数 [color=red]-- FIELDS TERMINATED BY 字段之间的分割符,默认是/t,这里改成逗号[/color] -- ESCAPED BY 对特殊字原创 2014-08-14 14:48:03 · 148 阅读 · 0 评论 -
MySQL开启慢查询日志slow_query_log
过多少秒的查询就写入日志[/color][color=red]log_output=file必须指定file或者是table如果是table则慢查询信息会保存到mysql库下的slow_log表中。这点要清楚。默认值是NONE[/color]打开my.cnf配置文件,加入以下代码:[code="cnf"]log_output=fileslow_query_log=on ;slow_query_log_file = /tmp/mysql-slow.loglong原创 2014-08-14 14:42:03 · 141 阅读 · 0 评论 -
开启mysql慢查询日志并使用mysqldumpslow命令查看
以下代码:[code="cnf"]log-slow-queries = /tmp/mysql-slow.loglong_query_time = 2[/code]保存退出,重启MySQL即可。long_query_time = 1 #定义超过1秒的查询计数到变量Slow_queries。log-slow-queries = /usr/local/mysql/data/slow.log #定义慢查询日志路径。[color=red]log-queries-原创 2014-08-14 14:16:29 · 133 阅读 · 0 评论 -
MySQL if case语句使用总结
2,expr3)[/code][color=red]如果 expr1 是TRUE (expr1 0 and expr1 NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。[/color][code="sql"]select *,if(sva=1,"男","女") as ssva from taname where sva != &quo原创 2014-08-26 19:47:45 · 114 阅读 · 0 评论 -
mysql 存储过程例子
integer)begindeclare v1 int ;set v1 = parameter ;set parameter = 90 ;while v1>0 do select now(); set v1 = v1 - 1 ;end while ;select parameter ;end;//delimiter ;[/code][size=large][b](2)动态执行sql并注入参数[/b][/size][code=&qu原创 2014-08-28 11:36:49 · 80 阅读 · 0 评论 -
InnoDB Insert Buffer(插入缓冲)
原创 2014-08-30 11:40:00 · 96 阅读 · 0 评论 -
mysql 全文索引(fulltext)学习
原创 2018-10-15 11:09:13 · 319 阅读 · 0 评论 -
mysql cast和convert函数学习(将字符串转数字)
);CONVERT(value, type);就是CAST(xxx AS 类型), CONVERT(xxx,类型)。可以转换的类型是有限制的。这个类型可以是以下值其中的一个:二进制,同带binary前缀的效果 : BINARY 字符型,可带参数 : CHAR() 日期 : DATE [b][color=red]时间: TIME[/color][/b] 日期时间型 : DATETIME 浮点数 : DECIMAL原创 2018-08-03 11:12:22 · 1441 阅读 · 1 评论 -
mysql 外键锁机制
都在数据更改时,比如检查数据完整性、增加锁定等;[/color] 假设一个表为test_tab,一个表为child,[b]test_tab通过id和child的test_tab_id相连接[/b];在一个session中set autocommit=0,执行对test_tab或child的操作,在另一个session执行对child或test_tab的操作,从而得出以下结论:[size=large][color=red]一、对父表的操作[/color][/size]1:inser原创 2014-12-09 10:25:05 · 166 阅读 · 0 评论 -
mysql 常见函数总结
333)) ;-- 随机值前者有- 后者无-18位select uuid(),UUID_SHORT() ;-- 转大写 小写select UPPER('txxx'),lower('txxx') ;-- 78 十六进制为 4Eselect HEX(78);-- 去掉空格select TRIM(' w ');-- 转大写 小写select ucase('txxx'),LCASE('txxx') ;-- 截取一段 2表示保留小数两位 123.45 -2表示保持原创 2014-11-06 19:41:47 · 82 阅读 · 0 评论 -
MySQL checksum了解
olor]。扩展一下发现有一些有趣的问题,[color=red]比如数据插入顺序不同、表引擎不同、操作系统位数不同[/color]等。[size=large][b]插入顺序不同是否有影响[/b][/size]我们知道全表扫描是可以有很多种顺序的,尤其当表里面出现过delete动作以后,逻辑导出再导入另外一个表后,[color=red]两个表的全表扫描结果[/color]可能不同。 Checksum table计算返回值的逻辑大致如下:[code="test"原创 2014-11-05 19:51:45 · 241 阅读 · 0 评论 -
Mysql 常见命令总结
tart/ect/init.d/mysql restart (前面为mysql的安装路径)3.linux下关闭mysql的命令: mysqladmin shutdown /ect/init.d/mysql shutdown (前面为mysql的安装路径)4.连接本机上的mysql:进入目录mysql\bin,再键入命令[color=red]mysql -uroot -p[/color], 回车后提示输入密码。退出mysql命令:exit(回车)5.修改原创 2014-11-04 20:01:04 · 68 阅读 · 0 评论 -
MySql 数据库的创建和查看
de][b]进入该数据库[/b][code="sql"]mysql> USE xxx ;[/code][b]查看当前进入的数据库[/b][code="sql"]mysql> select database();[/code]原创 2014-11-04 19:51:56 · 93 阅读 · 0 评论 -
MySQL独立表空间VS共享表空间
原创 2014-11-04 19:19:51 · 139 阅读 · 0 评论 -
mysql Multiversion Concurrency Control机制(mvcc)
擎实现MVCC机制的具体细节不同,但大体思想类似。因此了解其思想,结合场景去应用。1、MVCC机制是行级锁的一种妥协,多线程事务读取时,避免使用锁,而是采用一种更小的开销,允许非阻塞读取,写操作进行时只锁定必要的记录2、简单的实现方式:[color=red]MVCC保存某个时间点上的数据快照。[/color]一个事务内,看到的是同一个版本的快照,数据一致。不同事务在同一时间点看到的数据会不一致,因为他们得到的数据版本不一样。InnoDB在每一行记录添加两个额外的隐藏值,分别记录创建时间,和过原创 2014-09-11 17:46:33 · 75 阅读 · 0 评论 -
mysql 操作索引FORCE INDEX
原创 2014-09-01 17:14:00 · 313 阅读 · 0 评论 -
mysql Hash索引学习
L Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,[color=blue][b]所以 Hash 索引的查询效率要远高于 B-Tree 索引。 [/b][/color]可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引原创 2014-08-14 11:59:19 · 83 阅读 · 0 评论 -
mysql insert into replace into insert ignore into 用法
会检查主键,如果出现重复会报错;[/color] [color=brown]replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样; [/color][color=blue]insert ignore into表示,如果中已经存在相同的记录,则忽略当前新数据; [/color]下面通过代码说明之间的区别,如下: [code="sql"]c原创 2014-08-14 11:56:32 · 109 阅读 · 0 评论 -
数据库Sharding的基本思想和切分策略
原创 2014-05-03 09:59:11 · 112 阅读 · 0 评论 -
mysql 事务隔离级别
用户可以用[color=red]SET TRANSACTION[/color]语句改变单个会话或者所有新进连接的隔离级别。它的语法如下:[code="sql"]SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZ...原创 2014-08-25 12:00:45 · 87 阅读 · 0 评论 -
mysql cpu占100%调优案例
[size=large][b]解决 MYSQL CPU 占用 100% 的经验总结[/b][/size] A [color=red]增加 tmp_table_size 值。[/color]mysql 的配置文件中,[color=blue]tmp_table_size 的默认大小是 32M。[/color]如果一张临时表超出该大小,MySQL产生一个 The table tbl_nam...原创 2014-08-23 21:44:45 · 137 阅读 · 0 评论 -
mysql cursor使用
[size=large][b]一,什么是游标(cursor)[/b][/size]个人觉得就是一个cursor,就是一个标识,用来标识数据去到什么地方了。你也可以把它理解成数组中的下标。[size=large][b]二,游标(cursor)的特性[/b][/size]1,只读的,不能更新的。2,不滚动的3,不敏感的,不敏感意为服务器可以或不可以复制它的结果游标(curs...原创 2014-08-22 20:24:44 · 201 阅读 · 0 评论 -
mysql 查看表数据量
数据库中有几十上百张表,那么哪些表的数据量比较大呢,总不能一个表一个表的去查询吧,在mysql中也有类似于oracle的数据字典表,只不过mysql没有oracle记录的那么多和详细,但也足够我们查询这些信息了。 在mysql的[color=red]information_schema[/color]下有存储数据库基本信息的数据字典表,[color=blue]可以通过查询tabl...原创 2014-08-22 16:55:45 · 226 阅读 · 0 评论 -
mysql mysqldump导入导出
我们来看几个常用用例:[color=red](1)导出整个数据库[/color][code="cmd"]mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql[/code][color=red](2)导出一个表[/color][code="cmd"]mysq...原创 2014-08-22 16:32:23 · 138 阅读 · 0 评论 -
mysql DATE_FORMAT() 函数
定义和用法[color=red]DATE_FORMAT() 函数[/color]用于以不同的格式显示日期/时间数据。[size=small][b]语法[/b][/size][code="sql"]DATE_FORMAT(date,format)[/code][color=blue]date 参数是合法的日期。format 规定日期/时间的输出格式。[/color]可以使用的...原创 2014-08-22 16:23:31 · 128 阅读 · 0 评论 -
mysql infile/outfile 导入导出
[color=red]第一种方式:通过SELECT 语句以及 LOAD FILE来导出导入文本文件[/color][color=blue]这种方式不会引起行锁定。[/color]命令:[code="sql"]SELECT * INTO OUTFILE 'D:/sql/test.txt'FIELDS TERMINATED BY ',' OPTIONALLY ENCLO...原创 2014-08-14 14:48:03 · 341 阅读 · 0 评论 -
MySQL开启慢查询日志slow_query_log
开启慢查询功能[color=red]slow_query_log_file 慢查询日志文件路径[/color][color=blue]slow_query_log 用于指定是否打开慢查询日志[/color][color=blue]long_query_time 超过多少秒的查询就写入日志[/color][color=red]log_output=file必须指定file或者是t...原创 2014-08-14 14:42:03 · 190 阅读 · 0 评论 -
mysql Hash索引学习
[color=red][b]MySQL Hash索引和B-Tree索引的区别究竟在哪里呢?[/b][/color]相信很多人都有这样的疑问,下文对两者的区别进行了详细的分析,供您参考。MySQL Hash索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,[color=blue][b]所以 Hash...原创 2014-08-14 11:59:19 · 110 阅读 · 0 评论 -
mysql insert into replace into insert ignore into 用法
[color=red][b]mysql中insert into和replace into以及insert ignore用法区别:[/b][/color] mysql中常用的三种插入数据的语句:[color=red]insert into表示插入数据,数据库会检查主键,如果出现重复会报错;[/color] [color=brown]replace into表示插入替换数据,需求表中有...原创 2014-08-14 11:56:32 · 110 阅读 · 0 评论 -
MySQL if case语句使用总结
Mysql的if既可以作为表达式用,也可在存储过程中作为流程控制语句使用,如下是做为表达式使用:[size=large][b]IF表达式[/b][/size][code="sql"]IF(expr1,expr2,expr3)[/code][color=red]如果 expr1 是TRUE (expr1 0 and expr1 NULL),则 IF()的返回值为expr2...原创 2014-08-26 19:47:45 · 1415 阅读 · 0 评论 -
mysql 存储过程例子
[size=large][b](1)循环遍历值[/b][/size][code="sql"]drop procedure if exists doit ;/* *delimiter表示以//结束编译 * */delimiter //create procedure doit (in parameter integer)begindeclare v1 ...原创 2014-08-28 11:36:49 · 105 阅读 · 0 评论 -
InnoDB Insert Buffer(插入缓冲)
[color=red]插入缓冲,并不是缓存的一部分,而是物理页[/color],[color=blue]对于非聚集索引的插入或更新操作,不是每一次直接插入索引页.而是先判断插入的非聚集索引页是否在缓冲池中.如果在,则直接插入,如果不再,则先放入一个插入缓冲区中.然后再以一定的频率执行插入缓冲和非聚集索引页子节点的合并操作.[/color]使用条件:[color=red]非聚集索引,非唯一[/c...原创 2014-08-30 11:40:00 · 200 阅读 · 0 评论