
Mysql
文章平均质量分 81
e421083458
这个作者很懒,什么都没留下…
展开
-
mysql索引那些事
疑问:数据库为什么要设计索引? 加快速度?(哈希索引是不是更好?)减少随机IO,单行访问是很慢的,使用索引可以创建位置引用以提升查询效率一、常用索引类型:B-TREE&&B+TREE最常用索引、时间复杂度:O(log(n))、中序遍历保证顺序、哈希索引目前只有Memory支持、、时间复杂度:O(1)、可使用B-TREE创建自定义哈希索引R...原创 2018-08-31 19:56:37 · 579 阅读 · 0 评论 -
MySQL性能优化
MySQL性能优化换汤不换药,本文摘抄自比较老的帖子,但是它的内容依然很有用。文中补充了一部分本人的总结文档,可以这样说如果你全部掌握那考官在mysql都比不过你。1. 简介在Web应用程序体系架构中,数据持久层(通常是一个关系数据库)是关键的核心部分,它对系统的性能有非常重要的影响。MySQL是目前使用最多的开源数据库,但是MySQL数据库的默认设置性能非常的差,仅仅是一个玩原创 2014-02-25 12:37:58 · 1590 阅读 · 0 评论 -
mysql优化Analyze Table
Analyze TableMySQL 的Optimizer(优化元件)在优化SQL语句时,首先需要收集一些相关信息,其中就包括表的cardinality(可以翻译为“散列程度”),它表示某个索引对应的列包含多少个不同的值——如果cardinality大大少于数据的实际散列程度,那么索引就基本失效了。我们可以使用SHOW INDEX语句来查看索引的散列程度:SHOW INDEX转载 2014-02-25 11:51:22 · 13359 阅读 · 1 评论 -
针对MyISAM锁表的解决方案(也可应用于表锁定)
最近服务器上经常出现mysql进程占CPU100%的情况,使用show processlist命令后,看到出现了很多状态为LOCKED的sql。使用show status like ‘table%’检查Table_locks_immediate和Table_locks_waited,发现Table_locks_waited偏 大。出问题的表是MyISAM,分析大概是MyISAM的锁表导致。My转载 2013-12-26 00:38:49 · 10122 阅读 · 0 评论 -
数据库第三范式
第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。 当然,这里要把1、2、3、4范式都讲一下。第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为原创 2014-02-24 15:00:51 · 2127 阅读 · 0 评论 -
mysql update 多表,最标准示例
mysql update 多表,最标准示例update landleveldata a, gdqlpj b set a.gqdltks= b.gqdltks, a.bztks= b.bztks where a.GEO_Code=b.lxqdm;UPDATE sssssss AS s,ttttt AS t SET t.`name`=5555 WHERE s.`name`='ssssss原创 2014-02-24 15:20:39 · 1036 阅读 · 0 评论 -
mysql配置mysql-proxy读写分离
mysql配置读写分离在这里你再也不用担心高手省略了大段代码了,因为我也是新手。下面开整先安装luaLua 是一个小巧的脚本语言。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。先安装可能的依赖包[root原创 2014-02-22 20:34:12 · 29111 阅读 · 12 评论 -
mysql配置之主从复制
主数据库的配置:[root@bogon mysql]# vi /etc/my.cnf[mysqld]之后添加如下:log-slow-queries=mysql-slow.loglog-error=mysql.errlog-bin=mysql-binserver-id=1保存退出[root@bogon mysql]# service mysqld restart原创 2014-02-20 22:29:36 · 4566 阅读 · 0 评论 -
mysql的锁表问题
SHOW PROCESSLIST查看数据库中表的状态,是否被锁;kill id //杀掉被锁的表===================================================set autocommit=0;select * from t1 where uid='xxxx' for update //在有索引(例如uid)的情况下是行锁,否则是表转载 2013-12-26 23:52:45 · 1109 阅读 · 0 评论 -
mysql存储引擎Myisam、Innodb、Memery(Heap)、Mrg_myisam、Blackhole、Csv、Archive
在mysql中的数据用各种不同的技术存储在文件或者内存中。这些技术都是用了不同的存储机制、索引技巧、锁定水平,最终给用户提供不同的选择。这些不同的技术以及配套的相关功能在mysql中被称为存储引擎(或者表类型)。在mysql中配置有许多不同的存储引擎,用户可以灵活的选择适用于服务器、数据库和表格的存储引擎,以便获得最大的性能和最大的灵活性。这也是mysql不同于其他大型数据库以及mysql转载 2013-12-25 17:57:23 · 6355 阅读 · 0 评论 -
mysql中Myisam锁问题
mysql中myisam锁问题:试验结论:打开双终端同时连接一个库同时进行测试!读锁测试:lock>+-------+--------------------------------------------------------------------------------------+1>等待.....其次测试写锁:1)term1:mysq原创 2013-12-26 00:17:15 · 1938 阅读 · 0 评论 -
MYSQL各字段的长度是多少?
见下表:序号列类型需要的存储量1TINYINT1字节2SMALLINT2个字节3MEDIUMINT3个字节4INT4个字节5INTE转载 2014-02-15 23:43:46 · 4154 阅读 · 0 评论 -
mysql找回密码
service mysqld stopmysqld_safe --user=mysql --skip-grant-tables &mysqlupdate mysql.user set password=password('123456') where user='root';pkill -9 mysqld_safeservice mysql restart原创 2014-03-12 16:47:32 · 1157 阅读 · 0 评论 -
yum安装mysql简单配置版
yum安装mysql简单配置版yum -y install mysql-server[root@bogon ~]# vi /etc/my.cnf在[mysqld]之后添加一行:default-character-set=utf8保存关闭[root@bogon ~]# chkconfig mysqld on查看自启动的设置,如果2、5都是on就行[root@bog原创 2014-02-20 21:11:50 · 3675 阅读 · 0 评论 -
macbook之brew安装mysql
macbook的mysql意外无法正常启动sudo mysql.server startPassword:Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/var/mysql/niuyufudeMacBook-Pro.local.pid).tail -n 100 /usr/原创 2015-07-07 15:17:11 · 26214 阅读 · 1 评论 -
赶集mysql军规
赶集网mysql开发36军规写在前面的话:总是在灾难发生后,才想起容灾的重要性;总是在吃过亏后,才记得曾经有人提醒过。(一)核心军规(1)不在数据库做运算:cpu计算务必移至业务层(2)控制单表数据量:单表记录控制在1000w(3)控制列数量:字段数控制在20以内(4)平衡范式与冗余:为提高效率牺牲范式设计,冗余数据(5)拒绝3B:拒绝大sql,大事物,转载 2015-03-27 09:48:10 · 3709 阅读 · 1 评论 -
FEDERATED存储引擎的使用,如何开启FEDERATED,FEDERATED Support NO?
开启FEDERATED存储的方法如下:1.查看是否安装了federated引擎从中可以看出federated引擎没有开启.2.开启federated引擎vi /etc/my.cnf在[mysqld]之后添加:federated3.安装federated存储引擎mysql> install plugin federated soname原创 2014-10-03 14:18:15 · 6393 阅读 · 0 评论 -
shell 统计mysql数据库的表的行数
shell 统计mysql数据库的表的行数#!/bin/bashecho -n "MySQL username: " ; read usernameecho -n "MySQL password: " ; stty -echo ; read password ; stty echo ; echomysql -u $username -p"$password" -NBe "SHOW D原创 2014-11-13 11:16:57 · 5629 阅读 · 0 评论 -
清理bin-log日志(mysql-bin日志清理)
清理bin-log日志(mysql-bin日志清理)原创 2014-10-27 11:24:16 · 1382 阅读 · 0 评论 -
mysqldump 生成.gz文件
mysqldump 生成tar.gz文件原创 2014-09-28 18:34:01 · 3828 阅读 · 0 评论 -
mysql procedure 存储过程
1. 存储过程简介我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同原创 2014-10-22 17:12:48 · 2828 阅读 · 0 评论 -
innodb数据库 OPTIMIZE TABLE 提示Table does not support optimize, doing recreate + analyze instead
Table does not support optimize, doing recreate + analyze instead提要:1.MySQL官方建议不要经常(每小时或每天)进行碎片整理,一般根据实际情况,只需要每周或者每月整理一次即可。2.OPTIMIZE TABLE只对MyISAM,BDB和InnoDB表起作用,尤其是MyISAM表的作用最为明显。此外,并不是所有表都需原创 2014-09-24 14:09:41 · 30172 阅读 · 1 评论 -
mysql show processlist命令 详解
SHOW PROCESSLIST显示哪些线程正在运行。您也可以使用mysqladmin processlist语句得到此信息。如果您有SUPER权限,您可以看到所有线程。否则,您只能看到您自己的线程(也就是,与您正在使用的MySQL账户相关的线程)。请参见13.5.5.3节,“KILL语法”。如果您不使用FULL关键词,则只显示每个查询的前100个字符。本语句报告TCP/IP连接的主机名称转载 2014-08-01 21:05:59 · 93192 阅读 · 2 评论 -
mysql的inndb服务器宕机数据还原:使用ibdata1及数据库文件夹(*.frm,*.ibd)还原数据
你可能试过innodb_force_recovery等方法,但是启动mysql时还失败。这可能需要完整的binlog日志吧。一旦日志损坏则无法完成还原。本还原方法要求用户在/etc/my.cnf中配置innodb_file_per_table=1,才行。如果没有配置不能保证还原成功,因为只有配置了在数据库文件夹里才会显示*.ibd文件。我们希望将主机A的mysql服务由主机B接管,原创 2014-09-20 18:30:33 · 6501 阅读 · 0 评论 -
MySQL – 查询按IN的顺序输出结果
在用 SELECT 查询的时候,如果用到了 IN ,那么查询结果中的顺序并不是按照 IN 后面所给的顺序返回,而是按照默认的升序排列。如下:mysql> SELECT * FROM test WHERE id IN (343,123,32,10,6,981,651,98,129);+-----+--------+| id | name |+-----+--------+| 6转载 2013-12-24 17:09:48 · 2987 阅读 · 0 评论 -
mysql select in 筛选出不存在的数据
DROP TABLE t1;CREATE TEMPORARY TABLE t1(NAME VARCHAR(255) NOT NULL);INSERT INTO t1 VALUES('z91w_-j');INSERT INTO t1 VALUES('iok_gg');INSERT INTO t1 VALUES('panjianwei2124');INSERT INTO t1 VA原创 2013-11-28 16:05:37 · 12633 阅读 · 0 评论 -
Mysql水平分表
Mysql水平分表Mysql在数据量大的情况下,会遇到水平分表的情况。1:条件中含有分表的信息比如说要划分10个表,那对10进行取模。其实也可以是任意哈希函数,但是要注意注意冲突处理。2: 根据时间拆表当表的关系比较复杂时,无法根据某个维度进行分表。但是有明显的时效性。想必大家都用微薄,某人发的微薄,会被推送到千家万户。所以某条微薄是无法根据用户ID进行分表查询原创 2013-11-14 11:13:25 · 5344 阅读 · 0 评论 -
查看mysql数据库大小、表大小和最后修改时间
1.查看数据库表基本信息。select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA = '数据库名' and information_schema.TABLES.TABLE_NAME = '表名';2.查看mysql数据库大小SELECT sum(DATA_LEN原创 2013-04-23 13:20:59 · 1693 阅读 · 0 评论 -
当下高级面试题_你会做几个?
1.java与php哪个更好?java更倾向于面向事务的处理,php倾向于快速开发,所以说没有哪个更好!2.jsp与php哪个反映更快?jsp反映更快helloworld.jsp Hello World!!!之jsp测试 Hello World!!!之jsp测试"%>helloworld.phpHello World!!!之p原创 2013-04-13 11:55:25 · 1430 阅读 · 0 评论 -
java连接mysql出现乱码
插入数据时出现乱码,大致修改点为:1.my.ini中[client]下面添加:default-character-set=utf82.my.ini中[mysqld]下面添加:default-character-set=utf83.JDBC的URL使用:jdbc:mysql://localhost:3310/mldn?useUnicode=true&charaterEncoding=原创 2013-04-02 10:57:33 · 1059 阅读 · 0 评论 -
MySQL的mysqldump工具的基本用法
导出要用到MySQL的mysqldump工具,基本用法是: shell> mysqldump [OPTIONS] database [tables] 如果你不给定任何表,整个数据库将被导出。 通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。 注意,如果你运行mysqldump没有--quick或--opt选项,mysqldu转载 2013-03-13 22:34:45 · 842 阅读 · 0 评论 -
SQL_基础篇
无论您是一位 SQL 的新手,戒是一位叧是需要对 SQL 复习一下的资料仓储业界老将, 您就来对地方了。这个 SQL 教材网站列出常用的 SQL 指令。这个网站包含以下几个部分: - SQL 指令: SQL 如何被用来储存、读取、以及处理数据库中的资料。 - 表格处理: SQL 如何被用来处理数据库中的表格。 - SQL语法: 这一页列出所有在这个教材中被提到的 SQL 语法。转载 2012-12-28 20:40:54 · 2047 阅读 · 0 评论 -
MySQL局域网内访问慢的原因及解决方法
MySQL局域网内访问慢的原因及解决方法。出现原因:主要是因为DNS服务器变更地址引起的。默认安装的MYSQL开启了DNS的反向解析,Windows系统下解决方法1. 进入WIN2003/XP系统Windows目录2. 找出my.ini文件。3. 修改文件内容,在[mysqld]下加入如下内容skip-name-resolve skip-grant-tables原创 2012-10-31 15:27:35 · 4277 阅读 · 0 评论 -
MYSQL5重置root密码
设置用户名root 密码为root //上面刚设置好的密码[root@localhost html]# mysql -uroot -pEnter password:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: No)无法修改密码用 service my原创 2012-10-22 11:18:00 · 654 阅读 · 0 评论 -
Centos 5.6编译安装mysql 5.5.11
MySQL 最新的版本5.5.11需要cmake编译安装,估计以后的版本也会采用这种方式,网上找了一些安装方法有些地方是错的,自己整理一份 所以特地记录一下安装步骤及过程,以供参考!1 mysql 5.5.11编译安装1.1 安装所需要系统库相关库文件 gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxm转载 2012-10-22 11:11:33 · 1962 阅读 · 0 评论 -
PHP下MYSQL的事务处理
MYSQL的事务处理主要有两种方法:1、用begin,rollback,commit来实现begin 开始一个事务rollback 事务回滚commit 事务确认方法一示例:/*************** transaction--1 ***************/$conn = mysql_connect('localhost','root','root转载 2012-09-26 17:08:12 · 802 阅读 · 0 评论 -
SQL语句 SELECT LIKE用法详解
在SQL结构化查询语言中,LIKE语句有着至关重要的作用。 LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的。A:%包含零个或多个字符的任意字符串:1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。2、转载 2012-08-30 09:42:45 · 10638 阅读 · 0 评论 -
如何在mysql中实现update字段set字段=字段+字符
update pui_sukd set massage=concat('kid',massage,'/kid')原创 2013-05-21 11:22:04 · 2112 阅读 · 0 评论 -
mysql必会命令整理
mysql必会命令整理共39条命令,条条精辟1、显示当前数据库服务器中的数据库列表:mysql> SHOW DATABASES;注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。2、显示数据库中的数据表:mysql> USE 库名;mysql> SHOW TABLES;3、显示数据表的结构:mysql> DESC原创 2013-05-29 23:55:42 · 957 阅读 · 0 评论 -
Mysql数据库的索引原理
写在前面:索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点。考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录。如果没有索引,查询将对整个表进行扫描,最坏的情况下,如果所有数据页都不在内存,需要读取10^4个页面,如果这10^4个页面在磁盘上随机分布,需要进行10^4次I/O,假设磁盘每次I/O时间为10ms(忽略数据传输时间),转载 2013-06-28 14:20:53 · 9954 阅读 · 0 评论