**高效的MySql 随机读取数据

一直以为mysql随机查询几条数据,就用SELECT * FROM `table` ORDER BYRAND() LIMIT 5就可以了。但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上查看官方手册,也说rand()放在ORDERBY子句中会被执行多次,自然效率及很低。YoucannotuseacolumnwithRAND()valuesinanORDERBYclause,becauseORDERBYwouldevaluatethecolumnmultipletimes.搜索Google,网上基本上都是查询max(id)*rand()来随机获取数据。SELECT *FROM `table` AS t1 JOIN (SELECT ROUND(RAND() * (SELECT MAX(id) FROM`table`)) AS id) AS&nbs...

phpMyAdmin setup.php脚本的任意PHP代码注入漏洞

  此漏洞代码在以下环境测试通过:      phpMyAdmin2.11.4,2.11.9.3,2.11.9.4,3.0.0及3.0.1.1版本;      Linux内核版本2.6.24-24-generici686GNU/Linux(Ubuntu8.04.2);      攻击环境要求:      phpMyAdmin版本:早于2.11.9.5的2.11.x和早于3.1.3.1的3.x;      此漏洞只针对采用向导模式安装的phpMyAdmin有效,而对采用手动安装的无效;      管理员必须未删除"/phpMyAdmin/"目录下的"/config/"子目录,因为"/scripts/setup.ph...

mysql 日期操作 增减天数、时间转换、时间戳(转换)

http://hi.baidu.com/juntao_li/item/094d78c6ce1aa060f6c95d0bMySQLdatediff(date1,date2):两个日期相减date1-date2,返回天数。selectdatediff('2008-08-08','2008-08-01');--7selectdatediff('2008-08-01','2008-08-08');---7一、MySQL获得当前日期时间函数1.1获得当前日期+时间(date+time)函数:now()mysql>selectnow();+---------------------+|now()              |+---------------------+|2008-08-0822:20:46|+---------------------+除了now()函数能获得当前的日期时间外,MySQL中还有下面的函数: current_ti...

mysql 某字段插入随机数

UPDATE `表名` SET `字段名`=ceiling(rand()*500000+500000) WHERE (条件); 写入11位手机UPDATExm_useraSETa.user_mobile=CONCAT('15810',ceiling(rand()*500000+500000));...

SQL注入介绍

一、SQL注入概念  1、sql注入是一种将sql代码添加到输入参数中  2、传递到sql服务器解析并执行的一种攻击手法  举例:某个网站的用户名为name=‘admin’。执行时为selectnamefromuserswherename=‘admin’    则输入时输入name=''or'1=1'。实则数据库中执行的是selectnamefromuserswherename=''or'1=1'则为真,用户名有效二、SQL注入的产生  1、web开发人员无法保证所有的输入都已经过滤  2、攻击者利用发送给sql服务器的输入数据构造可执行的sql代码  3、数据库未做相应的安全配置  对于1和2两点,攻击者可以利用get请求、post请求、cookie信息、相应的http头信息等进行数据的输入而达到攻击的目的三、寻找sql注入漏洞  1、通过...
IT猿 IT猿·2020-03-26

SQL 循环插入10000条

SQL>createtablett_test(xint,ychar(50));Tablecreated.SQL>SQL>begin2foriin1..1000003loop4insertintotvalues(i,'x');5endloop;6commit;7end;8/PL/SQLproceduresuccessfullycompleted.SQL>SQL>selectcount(*)fromt;COUNT(*)----------100000SQL>SQL>droptablet;Tabledropped.SQL>  ...

mysql添加索引

1.添加PRIMARYKEY(主键索引)mysql>ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)2.添加UNIQUE(唯一索引)mysql>ALTERTABLE`table_name`ADDUNIQUE(`column`)3.添加INDEX(普通索引)mysql>ALTERTABLE`table_name`ADDINDEXindex_name(`column`)4.添加FULLTEXT(全文索引)mysql>ALTERTABLE`table_name`ADDFULLTEXT(`column`)5.添加多列索引mysql>ALTERTABLE`table_name`ADDINDEXindex_name(`column1`,`column2`,`column3`) ...
IT猿 IT猿·2020-03-26

SQL练习

http://www.1keydata.com/cn/sql/sql-concatenate.php...
IT猿 IT猿·2020-03-26

mysql 与mongodb的特点与优劣

首先我们来分析下mysql 与mongodb的特点与优劣。下面是我以前做的ppt的部分截图。再来分析下应用场景,a.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量:(1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类)(2)从data models设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。(3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。这种情况也是不少的,我手上的游戏就是有nodejs+mongodb的,用户总量也是千万级别的,流水什么还不错。b.将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助m...

MySQL与MongoDB的操作对比

   MySQL与MongoDB都是开源的常用数据库,但是MySQL是传统的关系型数据库,MongoDB则是非关系型数据库,也叫文档型数据库,是一种NoSQL的数据库。它们各有各的优点,关键是看用在什么地方。  以我们公司项目为例,在早期的项目中,都在使用关系型数据库,用过SQLServer,Oracle,DB2,后来全部转向Mysql,原因很简单:Mysql在性能不错的情况下,有着开源优势。Mysql的事务性与高性能是我们主要考虑的。后来,由于项目要用到用户系统,即会有大量的用户数据进行交互--海量存储,Mysql的读写速度会有一点瓶颈,于是我们就想到了最近发展很强势的Nosql。在Nosql早期的memcache的发展下,又出现了很多非关系型数据库,比如redis,mongodb。经过一段时间的测试,redis与mongodb的读写速度确实比Mysql有着很明显的优势。mongodb的写入速度大约2.5W/次每秒。  mongodb以BSON结构(二进制)进行存储,对海量数据存储有着很明显的优势。下面是Mongo...

MySQL创建用户与授权

一,创建用户:      命令:CREATEUSER'username'@'host'IDENTIFIEDBY'password';      说明:username-你将创建的用户名,host-指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符%.password-该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器.     例子:CREATEUSER'dog'@'localhost'IDENTIFIEDBY'123456';              CREATEUSER'pig'@'192.168.1.101_'IDENDIFIEDBY'123456';  &nb...

MySQL创建数据库与创建用户以及授权

1、createschema[数据库名称]defaultcharactersetutf8collateutf8_general_ci;--创建数据库  采用createschema和createdatabase创建数据库的效果一样。2、createuser'[用户名称]'@'%'identifiedby'[用户密码]';--创建用户  密码8位以上,包括:大写字母、小写字母、数字、特殊字符  %:匹配所有主机,该地方还可以设置成‘localhost’,代表只能本地访问,例如root账户默认为‘localhost‘3、grantselect,insert,update,delete,createon[数据库名称].*to[用户名称];--用户授权数据库  *代表整个数据库4、flush privileges;--立即启用修改5、revokeallon*.*fromtester;--取消用户所有数据库(表)的所有权限6、deletefrommysql.userwhereuser='tester';--删除用户7、dropdataba...

ubantu安装mysql

https://www.cnblogs.com/EasonJim/p/7147787.html...
IT猿 IT猿·2023-05-06

解决 mysql.connector.errors.NotSupportedError

转载:https://www.jianshu.com/p/7b0dd384f512mysql:8.0.11python:3.6mysql.connector.errors.NotSupportedError)Authenticationplugin'caching_sha2_password'isnotsupportedpipinstallMySQL-connector-python...

mysql简单安装教程

今天主要讲下最新版本mysql8.0.11的安装步骤。1、Windows上安装MySQL相对来说会较为简单,点击链接 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.11-winx64.zip 下载zip包。  最新版本可以在 MySQL下载 中下载中查看。2、解压安装包,我把安装包解压在C:javamysql-8.0.11-winx643、配置环境变量,把mysql的bin目录配置到path变量4、新增my.ini文件初始化配置[client]#设置mysql客户端默认字符集default-character-set=utf8mb4[mysqld]#设置3306端口port=3306#设置mysql的安装目录basedir=C:\java\mysql-8.0.11-winx64    (注意这里改为自己的项目地址!!!)#设置mysql数据库的数据的存放目录,MySQL8+不需要以下配置,系统自己生成即可,否则有可能报错# datadir...
首页上一页...785786787788789...下一页尾页