首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序猿杂货铺

    MySQL2)| MySQL索引机制】

    MySQL中,索引是在存储引擎层面实现的,所以,并没有统一的索引标准,一般来说,不同存储引擎的工作方式是不一样的,也不是所有的存储引擎都支持所有类型的索引 哈希索引 哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效 B-Tree索引 B-Tree索引使用B-Tree树数据结构存储数据,大多数MySQL引擎都支持这种索引(Archive引擎是个例外) ? B+Tree索引图 详细的B-Tree和B+Tree可以参考 【MySQL一】开发人心里都该有的那颗 B 树 B树被作为实现索引的数据结构被创造出来,是因为它能够完美的利用“局部性原理”。 (1)由于是m分叉的,高度能够大大降低; (2)每个节点可以存储j个记录,如果将节点大小设置为页大小,例如4K,能够充分的利用预读的特性,极大减少磁盘IO; 注意:高度降低的原因在于: 在利用了局部性原理前提下 ,我们把一个节点的大小设为一页,一页4K,假设一个KEY有8byte,一个节点可以存储500个KEY,即j=500 m叉树,大概m/2<= j <=m,即可以差不多是1000叉树 一层树:1个节点,1*

    1.2K20发布于 2019-09-03
  • 来自专栏java初学

    mysql入门 — (2

    1.名称和字段名要有意义,比如说用英文或英文的组合; 2.自己定义的名称最好都小写; 3.SQL语句需要大写。 ? 2.字符型       可以使用“”和''来存储。       char、varchar的长度都是255。 ?    如果超出了指定的长度,就会保存失败。 ?            SET        集合      1,2,3,4,8字节 ? 数据字段属性 1.unsigned可以让空间增加一倍, -128-127, 0-255,只能用在数值型字段;   2.zerofill 零填充,前导0,自动用0填充。 ? ?     2.唯一索引   3.常规索引   4.全文索引

    1.2K80发布于 2018-05-14
  • 来自专栏技术杂记

    mysql 迁移2

    [mysql@slave02 bin]$ masterha_check_status --conf=/etc/app1.cnf app1 is stopped(2:NOT_RUNNING). [mysql@slave02 bin]$ ps faux | grep manager mysql 27192 0.0 0.0 103244 864 pts/2 S+ 00:23 0:00 \_ grep manager [mysql@slave02 bin]$ ---- 关闭原slave上keepalived 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2:

    49620编辑于 2022-03-21
  • 来自专栏技术杂记

    mysql 迁移2

    Ss Sep25 2:17 /usr/sbin/keepalived -D root 73610 0.0 0.0 112500 2908 ? S Sep25 2:21 \_ /usr/sbin/keepalived -D root 73611 0.0 0.0 112484 2064 ?

    2.2K40编辑于 2022-03-22
  • 来自专栏Python

    Mysql-2

    MySQL用户数据和权限有修改后,搜索希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令 */ MySQL权限管理 授权 --语法格式: grant 权限列表 on 库名 > create view view_test2 as select count(name) from t_student; Query OK, 0 rows affected (0.71 sec) mysql 示例: mysql> show tables; +-----------------+ | Tables_in_test2 | +-----------------+ | goods           //从语法可以看出,DROP VIEW一次可以删除多个视图 示例: mysql> drop view view_test1,view_test2; Query OK, 0 rows affected ,sn)将s1,s2...,sn连接成字符串 CONCAT_WS(sep,s1,s2...,sn)将s1,s2...

    3K50发布于 2018-01-24
  • 来自专栏技术杂记

    Mysql 监控2

    尝试运行一下状态收集脚本[root@mysql-server scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg --host localhost --items gg[root@mysql-server scripts]# 安装依赖包这里提示我们系统里没有安装 php ,我们给它装上,同时我们也装上 php-mysql ,它提供了php 连接 mysql 需要的DBI[root@mysql-server scripts]# yum install php php-mysql Loaded plugins: fastestmirror -5.3.3-46.el6_6.x86_64--> Processing Dependency: libmysqlclient.so.16()(64bit) for package: php-mysql [root@mysql-server scripts]#

    1K30编辑于 2022-06-30
  • 来自专栏一滴水的眼泪

    MySQL-2

    分别使用8,16,32,64位存储空间,它们恶意存储的范围址从-2的N-1次方到2的N-1次方-1,N为存储空间的位数。 整数类型有可选的UNSIGNED属性,表示不允许负值。 8个字节 有符号(-2^63 ~ 2^63 - 1) 默认为有符号 float 4字节 有符号(- 2^23 ~ 2^23 – 1) 单精度浮点 double 8字节 双精度浮点 decimal 不确定 MySQL在存储和检索时会保留末尾空格。InnoDB会把过长的VARCHAR存储为BLOB。 CHAR类型时定长的:MySQL总是根据定义的字符串的长度分配足够的空间。 24-1)字节 中等二进制字符串 mediumtext 0-(2^24-1)字节 中等文本字符串 longblob 0-(2^32-1)字节 大二进制字符串 longtext 0-(2^32-1)字节 MySQL能存储的最小时间粒度为秒。但MySQL可以使用微秒级的粒度进行临时运算。MySQL提供两种日前类型;DATETIME和TIMESTAMP。 DATETIME精度为秒。

    1.1K10发布于 2020-09-21
  • 来自专栏练习bug时长两年半

    MySQL学习笔记2

    排序查询 * 语法:order by 子句 * order by 排序字段1 排序方式1 , 排序字段2 排序方式2... sex HAVING 人数 > 2; 4. SELECT * FROM student LIMIT 6,3; -- 第3页 3. limit 是一个MySQL"方言" 约束 * 概念: 对表中的数据进行限定 含义:非空且唯一 2. 一张表只能有一个字段为主键 3. 主键就是表中记录的唯一标识 2. 第三范式(3NF):在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖) 数据库的备份和还原 1.

    91910编辑于 2022-08-24
  • 来自专栏python3

    Python操作MySQL(2)

    ,返回一个包含2个元素的元组,元组的元素还是元组 resTuple = cursor.fetchmany(2) print(type(resTuple)) for v in resTuple: update user set name = %s where name = %s;" res = cursor.executemany(sql,[("hhq1","lucy1"),("hhq2" ,"lucy2")]) print("受影响的行数: ",res) cursor.execute("select * from user where name in ('hhq1',' hhq2');") for i in cursor.fetchall(): print(i) cursor.close() conn.close() except cursor.scroll(0,mode="absolute") print("游标当前位置:" ,cursor.rownumber) cursor.fetchmany(2)

    1.1K40发布于 2020-01-10
  • 来自专栏惊羽-布壳儿

    mysql(2) - 隔离级别

    不同隔离级别,对应读取问题 脏读 不可重复度 幻读 读未提交 × × × 读已提交 √ × × 可重复读 √ √ ×(mysql innoDB 在加间隙锁的情况下是√) 序列化 √ √ √ 幻读有2 中场景,一种是session1进行 2次范围查询,在中间session2在该范围内插入了一条数据,导致session1 2次查询结果不一样; 另外一种是 session1 第一次范围查询在结果集的区间内不存在该条记录 在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。 按照上的说法,你去版本链通过trx_id对比查找到合适的结果就是小明2。 这就是Mysql的MVCC,通过版本链,实现多版本,可并发读-写,写-读。通过ReadView生成策略的不同实现不同的隔离级别。

    1.2K10编辑于 2022-06-15
  • 来自专栏技术杂记

    Mysql 优化存储2

    我们就是通过有无差异的记录条目来确认一致性 从结果来看,是空的,说明主备数据是一致的 Note: 此时指定的host要是slave,也就是待检查的对象 ---- 停止复制 在待优化的slave上停止复制 mysql > show slave status\G mysql> stop slave; 停止复制后,最好再使用一个文本记录一下当前的position,以避免窗口信息丢失后,又执行了reset slave命令产生不良后果 ---- 生成优化语句 mysql> select concat('optimize table ',TABLE_SCHEMA,'.' ='mysql' into outfile "/tmp/optimize.sql"; Query OK, 365 rows affected (0.09 sec) mysql>

    52310编辑于 2022-03-21
  • 来自专栏技术杂记

    Ruby 操作 Mysql2

    连接数据库 [root@h102 mysql]# irb 2.3.0 :001 > require 'mysql2' => true 2.3.0 :002 > client = Mysql2::Client.new (:host => "192.168.100.105", :username => "xxx", :password => "xxx") => #<Mysql2::Client:0x00000001ba9180 >nil, :host=>"192.168.100.105", :username=>"xxx", :password=>"xxx"}> 2.3.0 :003 > client.class => Mysql2 :023 > client.server_info => {:id=>50627, :version=>"5.6.27-76.0"} 2.3.0 :024 > Tip: 可以使用的连接选项如下 Mysql2 = 'my.cfg section', :init_command => sql ) 在对安全要求更严格的环境下,可以使用 SSL 加密连接,前提是客户端和服务端都得编译对 SSL 的支持 Mysql2

    87620发布于 2021-10-19
  • 来自专栏java学习java

    MySQL逻辑架构(2

    缓冲池的预读特性: 2. 查询缓存 那么什么是查询缓存呢? 查询缓存是提前把 查询结果缓存 起来,这样下次不需要执行就可以直接拿到结果。 需要说明的是,在MySQL 中的查询缓存,不是缓存查询计划,而是查询对应的结果。因为命中条件苛刻,而且只要数据表 发生变化,查询缓存就会失效,因此命中率低。 set global innodb_buffer_pool_size = 268435456; 3.4 多个Buffer Pool实例  innodb_buffer_pool_instances = 2 这样就表明我们要创建2个 Buffer Pool 实例。 3.5 引申问题 Buffer Pool是MySQL内存结构中十分核心的一个组成,你可以先把它想象成一个黑盒子。

    60820编辑于 2022-11-15
  • 来自专栏信息技术智库

    2.安装MySQL

    2.安装MySQL Mac系统中安装MySQL 使⽤用Mac中的Homebrew进⾏行行mysql的安装 1.下载安装mysql brew install mysql@5.7    如果看到以下界⾯面则表示已经下载安装成功 2.启动mysql mysql.server start 3.关闭mysql mysql.server stop 4.登录mysql mysql -u root -p Windows安装MySQL5.7.17 在MySQL官网 http://dev.mysql.com/downloads/mysql/ 上面下载ZIP安装包(第二个:Windows (x86, 64- bit), ZIP Archive)。 2. 下载完成后解压,将其放到想要安装的目录下。 例如:D:\MySQL5.7\mysql-5.7.17-winx64 3. 修改环境变量,添加"D:\MySQL5.7\mysql-5.7.17-winx64\bin"。 9.

    32430编辑于 2022-07-29
  • 来自专栏从零学习云计算

    Mysql学习(2)——Mysql双机热备

    参考博客《CentOS系统MySQL双机热备配置》。 参考官方文档https://dev.mysql.com/doc/refman/5.6/en/replication.html。 #忽略对mysql库的操作,即不记录到日志中 重启mysql # systemctl restart mysqld 查看mysql状态 ? 记录二进制文件名(mysql-bin.000002)和位置(120)。 Slave服务器配置 暂停Mysql服务。 # systemctl stop mysql 修改mysql的配置文件/etc/my.cnf,添加如下配置: server-id=2 replicate-do-db=test #同步master的test slave-skip-errors=all slave-net-timeout=60 重启mysql: # systemctl restart mysql 打开mysql会话,执行同步SQL语句(需要主服务器主机名

    1.7K30发布于 2019-05-26
  • 来自专栏简书专栏

    mysql实训2

    name varchar(30) not null comment '客户姓名', location varchar(30) comment '工作地点', salary decimal(8,2) '银行标识', foreign key(b_id) references bank(b_id), dep_date date comment '存入日期', amount decimal(8,2) comment '存款金额' ); 2.插入数据 向customer表中插入数据: insert into customer(c_id,name,location,salary) values 1,'101001','B0001','2011-04-05',42546); insert into deposit(d_id,c_id,b_id,dep_date,amount) values(2, 插入数据 INSERT INTO `产品类别` VALUES ('1', '饮料', '软性饮料,咖啡,啤酒,及麦酒'); INSERT INTO `产品类别` VALUES ('2', '调味品',

    1.8K20发布于 2018-09-10
  • 来自专栏机器学习/数据可视化

    MySQL学习2_ubuntu18安装MySQL

    安装 官网下载 进入MySQL数据库的官网。里面有各种版本,MySQL5.5,MySQL5.6,MySQL5.7,MySQL8.0。 # 输入mysql,进入mysql服务 ;root账户下分隔符是#,普通用户是$ mysql> select user, plugin from mysql.user; +------------- | mysql_native_password | | mysql.sys | mysql_native_password | | debian-sys-maint | mysql_native_password /init.d/mysql restart # 重启mysql配置服务 卸载 卸载mysql sudo apt-get autoremove --purge mysql-server sudo apt-get --purge mysql-client-* sudo apt-get remove mysql-common 删除数据 dpkg -l |grep ^rc|awk '{print $2}' |sudo

    73910发布于 2021-03-02
  • 来自专栏Springboot框架学习

    Mysql学习——MySQL数据结构修改(2

    1.添加表字段 语法:  ALTER TABLE 表名 ADD 字段名 数据类型; 例如:  ALTER TABLE User ADD modifyTime VARCHAR(100); 2.修改字段类型

    1.5K10编辑于 2022-08-17
  • 来自专栏学而时习之

    MySQL基础篇2 mysql的日志系统

    mysql如何做到恢复半月内任意一秒的数据呢? ; 如果要将 ID=2 这一行的值加 1,SQL 语句就会这么写: mysql> update T set c=c+1 where ID=2; image.png 在一个表上有更新的时候,跟这个表有关的查询缓存会失效 如果 ID=2 这一行所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。 假设在 redo log 写完,binlog 还没有写完的时候,MySQL 进程异常重启。 binlog 3commit 当在2之前崩溃时 重启恢复:后发现没有commit,回滚。

    62540发布于 2020-05-18
  • 来自专栏Urlteam

    mysql基本操作以及python控制mysql2)–mysql基础操作

    +--------------------+ rows in set (0.18 sec) 2:选定一个数据库,作用与test数据库 mysql> use test; Database changed (2,'Joan',82.99), (2,'Wang', 96.59); 查询表中的数据 查询所有行 mysql> select * from MyClass; 查询前几行数据 例如:查看表 MyClass 中前 2 行数据 mysql> select * from MyClass order by id limit 0,2; 或者 mysql> select * from MyClass 例 2:将数据库 mydb 中的 mytable 导出到 e:\MySQL\mytable.sql 文件中。 mysql>source [备份文件的保存路径] 2)使用“<”符号 首先进入“mysql”命令控制台,然后创建数据库,然后退出 MySQL,进入 DOS 界面。最后执行下面操作。

    97810发布于 2019-11-28
领券