首 页 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 尾 页

mysql外键实战

发布者: superzhang | 发布时间:2017-11-25

mysql外键实战

一、基本概念

1、MySQL中“键”和“索引”的定义相同,所以外键和主键一样也是索引的一种。不同的是MySQL会自动为所有表的主键进行索引,但是外键字段必须由用户进行明确的索引。用于外键关系的字段必须在所有的参照表中进行明确地索引,InnoDB不能自动地创建索引。

2、外键可以是一对一的,一个表的记录只能与另一个表的一条记录连接,或者是一对多的,一个表的记录与另一个表的多条记录连接。

3、如果需要更好的性能,并且不需要完整性检查,可以选择使用MyISAM表类型,如果想要在MySQL中根据参照完整性来建立表并且希望在此基础上保持良好的性能,最好选择表结构为innoDB类型。

4、外键的使用条件

① 两个表必须是InnoDB表,MyISAM表暂时不支持外键

② 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显式建立;

③ 外键关系的两个表的列必须是数据类型相似,也就是可以相互转换类型的列,比如

想读更多 ->

MySQL常用操作

发布者: superzhang | 发布时间:2017-11-25

创建mysql用户和数据表

create database testcom;

grant all on testcom.* to 'cxf'@'localhost' identified by 'cxf';

MySQL的密码重置

设置root密码为123456

mysql -uroot password '123456'

vim /etc/my.cnf

在最后面加一条

skip-grant

不去授权

登录mysql重置密码,重置后要把skip-grant去掉

use mysql;

update user set password=password('123456') where user='root';

刷新磁盘:flush privileges(也可以重启)

mysql登录

mysql -uroot -h127.0.0.1 -P3306 -p123456

授权192.168.31.101远程登录数据库

grant all on *.* to 'root'@'192.168.31.101' identified by '123456' with grant option (授

想读更多 ->

降低DevCloud门槛 华为云对开发者送出3大免费福利

发布者: superzhang | 发布时间:2017-11-25

对软件开发者而言,虽然目前网上基于敏捷、DevOps的开发工具有很多,但大都比较分散单一,一站式软件开发平台却比较少。也许,不少开发者可能已经知道了华为软件开发云(DevCloud),并且对这种全云化的开发模式还比较感兴趣,但是苦于这个东西还是有一定的门槛,各种云服务费挺让人心疼。

近日,在北京举行的华为云软件开发云媒体圆桌会上,华为云软件开发云运营总监张勇向媒体透露,为了降低门槛,让更多的开发者更好的体验到软件开发云,从11月16日起,华为云将为开发者送出三大免费福利。

福利一:软件开发云DevCloud免费

降低DevCloud门槛 华为云对开发者送出3大免费福利

据了解,软件开发云免费限5人以下团队,免费包含以下内容:项目管理、代码托管、测试管理的免费使用额度为用户数5人,存储空间500MB,流水线、代码检查、部署目前限时免费使用,编译构建的免费使用额度为构建时长600分钟,发布的免费使用额度为存储空间500MB;软件开发云中的免费使用额度指的是当前系统中的使用量,而非累计使用量,以上各服务使用量超过免费额

想读更多 ->

mysql的概念以及mysql架构分析

发布者: superzhang | 发布时间:2017-11-25

mysql是目前最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。在给大家分享之前,先介绍下 小编组织的一个学习交流企鹅群:526929231 有什么不懂的问题,都可以在群里问,学习气氛很好,众多大神都很热情。群文件里面也有各种全面的python资料,以及自动化运维学习资料,是一个非常适合学习的地方,小编期待大家的加入,大家一起学习,共同成长!

mysql的概念以及mysql架构分析

mysql逻辑结构

从图中可以看到MySQL由以下几个部分组成:

连接池

管理服务和工具组件

SQL接口

查询分析器

优化器

缓存

插入式存储引擎

物理文件

物理结构:

mysql软件(mysqld)+配置文件+mysql数据文件(磁盘上的文件:datadir)

逻辑的架构:

mysql架构

想读更多 ->

Mysql备份恢复

发布者: superzhang | 发布时间:2017-11-25

备份

1、全库备份

格式:

mysqldump -u用户名 -p密码 --all-databases > 导出的文件名

举例:

mysqldump -uroot -p123456 --all-databases > fulldatabase.sql

把全库备份为fulldatabase.sql

2、备份某一个库

格式:

mysqldump -u用户名 -p密码 数据库名 > 导出的文件名

举例:

mysqldump -uroot -p123456 perdb > perdb.sql

把perdb数据库导出为perdb.sql

3、备份某一个表

mysqldump -u用户名 -p密码 数据库名 表名 > 导出的文件名

4、备份多个库

mysqldump -u用户名 -p密码 --databases 数据库1 数据库2 ... > 导出的文件名

5、备份的其它使用方法

• 备份过程启用压缩

格式:

mysqldump -u用户名 -p密码 数据库名 |gzip > 导出的文件名.g

想读更多 ->

MySQL常用函数清单

发布者: superzhang | 发布时间:2017-11-25

字符串拼接CONCAT(str1,str2,...)字符串长度(字节数)LENGTH(str)字符串长度(字符数)CHAR_LENGTH(str)字符串大小写转换LOWER(str) #转小写UPPER(str) #转大写LCASE(str) #转小写UCASE(str) #转大写字符串替换(区分大小写)REPLACE(str,from_str,to_str)字符串从左/右截取LEFT(str,len) #返回字符串左边的指定字符数RIGHT(str,len) #返回字符串右边的指定字符数字符串截取(按位置)SUBSTRING(str,pos) #从str头的pos位置返回一个字符串,pos为负则从尾截取字符串SUBSTRING(str FROM pos) #同上SUBSTRING(str,pos,len) #从str头的pos位置返回一个指定长度的字符串,pos为负则从尾截取字符串SUBSTRING(str FROM pos FOR len) #同上字符串截取(按分隔符出现次数)SUBSTRING_INDEX(str,delim,count) #返回字符串str中在第count个出现的分隔符delim之前的子串字符串查找INSTR(str,substr) #返回字符串str中子串substr第一次出现的位置,没找到则返回0LOCATE(substr,str) #同INSTR(st

想读更多 ->

MySQL中的锁

发布者: superzhang | 发布时间:2017-11-25

MySQL中的锁

概述

MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低

行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高

MyISAM表级锁

锁模式

show status like 'table%' 可以分析锁争夺情况

表级锁分为两种模式:共享读锁,独占写锁

读读共享,读写互斥,写写互斥,写读互斥(比如写读互斥,当一个用户对user表进行写的时候,会阻塞其他用户的写操作和读操作)

加表锁

在select的时候自动加读锁,在update delete insert时,自动加写锁

一般不需要用户用lock table 命令直接显式加锁

显示加表锁时

session1显示给user表加锁

lock table user read;

session1此时不能读取未锁定的class表

想读更多 ->

MySQL线程

发布者: superzhang | 发布时间:2017-11-25

MySQL线程

当MySQL服务器本身遇到性能问题的时候,一般可以通过slow log来找到耗时比较多的SQL语句,并且进一步通过explain来优化和改进SQL执行速度。这种方法有这几方面的限制:首先,并不是所有的问题都是因为异常SQL造成的,当大量SQL请求时间比较长,但不到slow log阈值的时候(通常线上无法将slow log阈值设置的较小),MySQL服务器负载也会很高;其次,MySQL服务器本身的状态会影响SQL的执行,有一些没有问题的SQL语句在MySQL负载较高时,也会进入slow log。

另外一种方法是通过MySQL的Performance Schema、Innodb status以及MySQL status等MySQL统计信息来定位问题;这通常需要对MySQL的实现有相当的了解;并且定位问题不是非常直接。

本人认为除了以上两种办法之外,可以通过strace MySQL的线程来定位性能瓶颈。这种方法可以定位出因为系统IO(包括网络)、内存、线程同步(MySQL锁使用错误)等造成的问题;也就是说,如果能确定MySQL Server不存在大量需要在用户态进行的计算(例如浮点运算、字符串处理等),都可以尝试使用此方法。

下面将介绍MySQL线程相关的一些信息,以MySQL5.6.29为例,MySQL5.7会有一些不一样。

想读更多 ->

linux mysql主从复制配置

发布者: superzhang | 发布时间:2017-11-25

linux mysql主从复制配置

在此不在赘述如何安装mysql数据库,只说它的主从复制,按以下步骤执行:

环境说明:

准备两台linux(虚拟)主机

Linux版本CentOS7、MySQL 5.6.17(mysql版本要一致)

IP地址分别为:192.168.1.1、192.168.1.2

创建复制账号

mysql会赋予一些特殊的权限给复制线程,因此必须在主库创建一个用户,并赋予其合适的权限,备库I/O线程以该用户名连接到主库并取其二进制日志。

在192.168.1.1 中创建一个192.168.1.2主机中可以登录的MySQL用户,并调用flush privileges刷新权限。

//192.168.1.1 : 主数据库服务器:

mysql>GRANT REPLICATION SLAVE ON *.* TO 'fuzhi'@'192.168.1.2' IDENTIFIED BY 'fuzhi';mysql>FLUSH PRIVILEGES;

注意:这个

想读更多 ->

mysql 中FIND_IN_SET的使用

发布者: superzhang | 发布时间:2017-11-25

在mysql中,有时需要得到某字段中包含某个值的记录,此时首先会想到like,使用like可能查到我们不想要的记录,它比like更精准,这时候FIND_IN_SET函数就派上用场了。

1.新建表结构

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `t_test`;

CREATE TABLE `t_test` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`funlist` varchar(50) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

2.插入测试数据

//插入数据以英文”,”分隔

insert into t_test(funlist) values ('1,3,4,6,78,98,121,245,567');

insert into t_test(funlist) values ('1,3,4,6,7,8,9,10,12,15,18');

3.查询实例

select

想读更多 ->