
mysql
lumengabc
学习啊学习。。。
展开
-
sphinx全文搜索引擎安装与配置php运行查询
4 打开cmd命令窗口,cd进入到安装路径:D:\soft\sphinx-3.4.1-efbcc65-windows-amd64\sphinx-3.4.1\bin。3 复制etc目录下的sphinx-min.conf.dist到bin目录下并修改文件名为sphinx.conf。2 安装后会得到6个文件夹:api,bin,doc,etc,misc,src。8 浏览器访问即可输出查询结果。原创 2023-01-18 14:43:23 · 437 阅读 · 0 评论 -
php商品列表多属性筛选不存在变灰
在商城网站系统开发中,商品列表筛选是很重要的。当遇到属性层级达到10+甚至更多层。比如手表类的商城网站:属性有:品牌,价格,机芯,性别,颜色,材质,直径。。。等等(假设有500个属性)。需要达到的效果:当选择某1个属性条件时,显示出商品列表,并且商品结果中(没有满足这些商品的属性需要变灰或者剔除)思路:1.做缓存,将500个属性遍历下,结果数大于3000个的缓存起来属性数据。(这...原创 2020-01-13 14:52:22 · 612 阅读 · 0 评论 -
mysql索引类型及说明
mysql索引类型 索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。 MySQL索引类型包括: (1)普通索引 这是最基本的索引,它没有任何限制。它有以下几种创建方式: ◆创建索引 CREATE INDEX indexName ON mytable(username(length)); 如果是 CH原创 2013-12-09 10:44:57 · 741 阅读 · 0 评论 -
mysql索引类型
在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令 MySQL的查询和运行更加高效。索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。 1、普通型索引 这是最基本的索引类型,而且它没有唯一性之类的限制。普通索引可以通过以下几种方式创建: (1)创建索引,例如CREATE INDE原创 2013-12-09 10:45:38 · 702 阅读 · 0 评论 -
distinct和group by
在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group by会做个排序(一般是ASC)。 DISTINCT 实际上和 GROUP BY 操作的实现非常相似,只不过是在 GROUP BY 之后的每组中只取出一条记录而已。所以,DISTIN原创 2013-12-09 10:46:07 · 700 阅读 · 0 评论 -
phpmyadmin基础配置修改
1.先到网上下载phpmyadmin,再解压到可以访问的web目录下(如果是虚拟空间,可以解压后通过ftp等上传到web目录下),当然您可以修改解压后该文件的名称。 2.配置config文件 打开libraries下的config.default.php文件,依次找到下面各项,按照说明配置即可: A.访问网址 引用: $cfg['PmaAbsoluteUri'] = '';这里填写phpmyadm原创 2013-12-09 10:47:30 · 1274 阅读 · 0 评论 -
left join,right join, inner join使用说明
下面是例子分析表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 创建这两个表SQL语句如下: CREATE TABLE a aID原创 2013-12-09 10:47:57 · 674 阅读 · 0 评论 -
Maximum execution time of 300 seconds exceeded, phpmyadmin
方法一,修改php.ini文件max_execution_time = 300; Maximum execution time of each script, in seconds把它设置成需要的值就可以了。如果设置成0的话,就是永不过期。方法二,修改phpmyadmin执行时间config.inc.php$cfg['ExecTimeLimit'] = 300; // ma原创 2013-12-09 10:48:05 · 1715 阅读 · 0 评论 -
mysql join用法
join的类型1. 内联结:将两个表中存在联结关系的字段符合联结关系的那些记录形成记录集的联结。2. 外联结:分为外左联结和外右联结。 案例背景create table java (name varchar(255));insert into java values ('java1'),('java2'),('blue'); create table mysql (name varchar原创 2013-12-09 10:49:52 · 771 阅读 · 0 评论 -
mysql压力测试工具、性能测试工具。。
MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过mysqlslap –help可以获得可用的选项,这里列一些主要的参数,更详细的说明参考官方手册。–auto-generate-sql, -a自动生成测试表和数据–auto-generate-sql-load-type=type测试语句的类型。取值包括:rea原创 2013-12-09 10:49:56 · 928 阅读 · 0 评论 -
mysql小数类型字段,float,double
mysql float double类型 1.float类型float列类型默认长度查不到结果,必须指定精度,比如 num float, insert into table (num) values (0.12); select * from table where num=0.12的话,empty set。num float(9,7), insert into table (num)原创 2013-12-09 10:50:05 · 12837 阅读 · 0 评论 -
in嵌套循环会自动过滤掉重复的ID
以下查询结果会不同。是因为in嵌套循环会自动过滤掉重复的IDmysql> select count(*) from goods -> where goodsid -> in(SELECT goodsid FROM goodsatt WHERE cid=200);+----------+| count(*) |+----------+| 169039 |+----------+1原创 2013-12-09 10:50:07 · 2203 阅读 · 0 评论 -
Mysql覆盖索引
什么是索引覆盖就是select的数据列只用从索引中就能够取得,不必读取数据行,换句话说查询列要被所建的索引覆盖。那么显然select * from ...是一种拙劣的查询,除非你建立了包含所有列的索引(这样建索引脑子进水)。对 于索引覆盖查询(index-covered query),使用EXPLAIN时,可以在Extra一列中看到“Using index”。使用索引覆盖如果你想要通过索引覆盖se原创 2013-12-09 10:50:14 · 1007 阅读 · 0 评论 -
【转载】数据库锁机制
这段时间由于开发项目,重新学习了数据库的并发控制和锁机制。数据库就是通过锁机制来解决并发问题的。。主要就是两种锁,共享锁和排他锁(也叫独占锁)。在执行select语句的时候需要给操作对象(表或者一些记录)加上共享锁,但加锁之前需要检查是否有排他锁,如果没有,则可以加共享锁(一个对象上可以加n个共享锁),否则不行。共享锁通常在执行完select语句之后被释放,当然也有可能是在事务结束(包括正常结束和原创 2013-12-09 10:52:19 · 696 阅读 · 0 评论 -
mysql 创建事务及查看表信息(存储引擎等基本信息)
START TRANSACTION; #开始事务update feedback set title = '新修改TITLE id =2' where id = 2;select * from feedback where id = 2;update feedback set title = '新修改TITLE id =4' where id = 4;select * from feedback w原创 2013-12-09 10:52:25 · 971 阅读 · 0 评论 -
如何找哪些连接出长时间持有着某个锁?
由此我们知道,通过SHOW PROCESSLIST\G;命令可以查看到在等待锁的进程,但是看不出持有着锁的进程(是哪个进程总是占用着锁呢,杀掉!!)当然这不是通过SQL语句来杀掉的,需要在系统服务器上执行mysqladmin辅助功能来运行命令,它能将锁的信息打印到服务器的错误日志里。$ mysqladmin debug执行这个命令会输出大量的调试信息内容,在末尾地方会看到这样的信息(如果:在一个连原创 2013-12-09 10:52:28 · 799 阅读 · 0 评论 -
mysql事务隔离级别设置与查看
1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transaction isolation level Read Uncommitted; 4.设置系统当前隔离级别 set global transaction isolation leve原创 2013-12-09 10:52:30 · 887 阅读 · 0 评论 -
mysql事务隔离级别举例
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read原创 2013-12-09 10:52:32 · 886 阅读 · 0 评论 -
乐观锁与悲观锁
悲观锁,手动加锁(从操作员读出数据、开始修改直至提交修改结果的全过程,甚至还包括操作 员中途去煮咖啡的时间)乐观锁,乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本 ( Version )记录机制实现。何谓数据版本?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个 “version” 字段来实现。读取出数据时,将此版本号一同读出,之后更新时,对原创 2013-12-09 10:52:34 · 793 阅读 · 0 评论 -
MYSQL事务与锁,需要手动加锁吗?
锁分为:隐式锁、显式锁。共享锁、排它锁。表锁、行锁、页级锁。这些锁一般都是自动加锁。不用去管它,只需要知道在什么时候MYSQL会去加锁就行。是否可以手动加锁?可以。事务中的锁 和 非事务中的锁。非事务中的锁,普通锁手动加锁分为:悲观锁和乐观锁。估计是傻B式的加锁(结果是:从操作员读出数据、开始修改直至提交修改结果的全过程,甚至还包括操作 员中途去煮咖啡的时间,可能忘记解锁)。自动加锁:一般MYSQ原创 2013-12-09 10:52:37 · 12783 阅读 · 3 评论 -
事务中的锁操作,UNLOCK自动提交事务。
当当前所有的表均被锁定时,UNLOCK TABLES可以提交事务。从这上看,是只要UNLOCK TABLES就会提交事务。主要看b会话,事务中加了读锁和解锁后,数据就自动提交到数据库了。(我想UNLOCK TABLES但不想提交事务,怎么办?)我们分为3个会话:A,B和C其中a和b会话有2个事务amysql> COMMIT; #提交事务Query OK, 0 rows affected (0.00原创 2013-12-09 10:52:39 · 1102 阅读 · 0 评论 -
MYSQL事务中用行锁
表锁一般没什么用,因为在事务中解除表锁的话会直接提交事务。在事务中一般用到的是行锁,即innodb引擎支持。共享锁例子:#session1 会话1start transaction;SELECT * FROM feedback LIMIT 1,10;#无视SELECT * FROM feedback LIMIT 1 FOR UPDATE;#只有加行锁的这行是锁定状态(FOR UPDATE)COMM原创 2013-12-09 10:52:41 · 2001 阅读 · 0 评论 -
为什么要加锁?行锁、读锁(共享锁)、写锁(排它锁)
#排它锁 要等待?#session1 会话1start transaction; update feedback set title='10:20' where id =1;#排它锁COMMIT; #提交事务#session2 会话2start transaction; select * from feedback where id=1; update feedback set title原创 2013-12-09 10:52:46 · 3116 阅读 · 0 评论 -
【转载】在mysql中获取insert插入数据的id的方法SELECT LAST_INSERT_ID();
SELECT LAST_INSERT_ID();我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数,或者刚插入的数据的ID值。一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的。但在多线程,高并发的情况下,就不行了。开始的时候我想的是使用mysql_insert_id(),不知道会不会在并发的时候产生影响,查询了下手册,也是才发现,是根据c原创 2013-12-09 10:52:57 · 2447 阅读 · 0 评论 -
mysql存储过程
今天在写存储过程,竟然一堆错误,找了资料看很久才发现原来是太马虎了。。书写格式一定要规范严格。#看看以面的错在哪里??DELIMITER$$ CREATE PROCEDURE inserts(IN num int) declare i int; set i=0; BEGIN WHILE i select i; set i=i+1; END WHILE END $$CALL i原创 2013-12-09 10:52:59 · 694 阅读 · 0 评论 -
mysql insert中文乱码无法插入ERROR 1366 (HY000): Incorrect string value: \'\\xB1\\
ERROR 1366 (HY000): Incorrect string value: '\xB1\xEA\xCC\xE2\xD5\xE2...' for column 'title' at row 2MYSQL经典问题: (ERROR 1366 (HY000): Incorrect string value:'\xD5\xD4' for column 'name' at row 1)网上有好原创 2013-12-09 10:53:01 · 11019 阅读 · 0 评论 -
mysql master/slave 模式
使用mysql的master/slave部署已经有一段时间。这种架构不能从根本上弥补数据结构设计失误带来的性能问题。聊胜于无。master/slave模式中,数据同步非常快。而master/slave/slave则会相对慢一些(就是master->slave(作为新的master)->slave,是串联的三个节点),有时候可能会有延迟,不过不严重。最近使用起来主要是在维护上积累了一些经验。以案例说原创 2013-12-09 10:53:38 · 1008 阅读 · 0 评论 -
修改mysql的root密码
方法一使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。方法二使用mysqladmin,这是前面声明的一个特例。(linux下需要先到安装目录/etc/init.d/ 执行./mysqld start 启动)默认是直接输入mysql命令就可以连接数据库的,不需要密码。mysqladmin -u root -p password mypa原创 2013-12-09 10:54:27 · 718 阅读 · 0 评论 -
报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
报错:1130-host ... is not allowed to connect to this MySql server解决方法:1。 改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"mysql -u ro原创 2013-12-09 10:54:41 · 927 阅读 · 0 评论 -
windows mysql备份命令
cd c:\program files\mysql\mysql server 5.1\binmysqldump -uroot -p123456 stblog > D:\mysql\back\stblog.sqlmysqldump -uroot -p123456 xhm > D:\mysql\back\xhm.sqlmysqldump -uroot -p123456 xytx > D:\mysql\原创 2013-12-09 10:55:11 · 1427 阅读 · 0 评论 -
win7下重装mysql无法重装mysql的问题
win7下,管理员模式,用sc delete +服务名 删除所有mysql服务。删除C:/ProgramData和C:/Users/opps/AppData/Roaming的mysql文件夹删除。 以下是转载的方法,最好按照这个方法再清理以下注册表。 1。在“运行”里键入regedit进入注册表。2。HEKY_LOCAL_MACHINE/SOFTWARE/MYSQL目录删除3。HKEY_LOCAL原创 2013-12-09 10:55:22 · 821 阅读 · 0 评论 -
PHPmyadmin导入大文件
以上文件大致说明的意思就是说,遇到导入过大文件时,首先检查php.ini 配置文件中的以下三个地方,upload_max_filesize, memory_limit 和post_max_size,并且推荐修改的值要稍大于导入的巨大sql数据库文件;依照这个提示,我修改了以上三个在php.ini中的值以后,重启 了php环境,再次导入时,虽然phpmyadmin还是显示导入最大限制:20,48原创 2013-12-09 10:43:53 · 766 阅读 · 0 评论 -
数据库设计原则(转载)
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。 在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。 这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员原创 2013-12-09 10:44:02 · 616 阅读 · 0 评论 -
phpmyadmin出现空密码登录被禁止 (参见 允许空密码)的解决办法
在Windows或者Linux下mysql安装后默认的密码为空,又当我们又安装了mysql的管理工具phpmyadmin后登陆时出现“空密码登陆呗禁止(参见允许密码为空)”。不能登录成功 解决办法如下:1..要是你想用空密码,则将phpmyadmin下的config.inc.php(根目录)或者config.default.php(根目录)再则:libraries\con原创 2013-12-09 10:44:04 · 11156 阅读 · 1 评论 -
【引用】安装mysql,已安装要彻底删除。
在装MYSQL的时候发现要输入current root password 不记得以前在电脑里装过(你的系统曾经装过MYSQL在重装就会要求输入原来设定的密码,如果是第一次 安装就不会出现),在网上苦苦搜寻解决方法。 终归结出以下解决方法: 1.清除MYSQL的安装目录,默认是C:\Program Files 2.清除MYSQL数据存放目录,一般在C:\Documents and Sett原创 2013-12-09 10:44:10 · 676 阅读 · 0 评论 -
查看MYSQL安装路径_mysql数据存储路径data
用show variables like '%engine%';看看你的默认引擎是什么。还有你每次建表时指定的engine是什么。如果你确定自己用的是myisam引擎。myd,myi肯定跟frm放一起的。在data目录下,一个数据库的文件(frm,myd.myi)保存在一个与数据库同名的文件夹下。你先看看数据库中有哪些database: 用show databases;再看看你的data目录下的文原创 2013-12-09 10:44:24 · 1064 阅读 · 0 评论 -
MYSQL常用命令 -CLS
MYSQL常用命令 -CLS 运行CMD下面 MYSQL 安装目录 BIN文件夹执行 命令 1.导出整个数据库mysqldump -u 用户名 -p --default-character-set=latin1 数据库名 > 导出的文件名(数据库默认编码是latin1)mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql2.导出一个表mysqldump原创 2013-12-09 10:44:26 · 1588 阅读 · 0 评论 -
mysql insert into多行记录写法
INSET INTO tablename (name, pid) VALUES ('小A',3),('小B',2),('小C',3); 这里是插入3行数据。原创 2013-12-09 10:44:39 · 1632 阅读 · 0 评论 -
mysql 存储索引
创建和删除索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。(1)使用ALTER TABLE语句创建索引。语法如下:alter table table_name add index index_name (column_list) ;alter原创 2013-12-09 10:44:50 · 672 阅读 · 0 评论 -
mysql force Index 强制索引 忽略索引 IGNORE INDEX
其他强制操作,优先操作如下: mysql常用的hint 对于经常使用oracle的朋友可能知道,oracle的hint功能种类很多,对于优化sql语句提供了很多方法。同样,在mysql里,也有类似的hint功能。下面介绍一些常用的。 强制索引 FORCE INDEX SELECT * FROM TABLE1 FORCE INDEX (FIELD1) … 以上的SQL语句只使用建立在FIE原创 2013-12-09 10:45:00 · 4742 阅读 · 0 评论