mysql相关问题

1、如何防止sql注入

  • 检查变量类型,如果是整形就使用intval方法转为int
  • string类型使用addslashes函数过滤特殊字符(它会在指定的预定义字符前添加反斜杠转义,这些预定义的字符是:单引号 (‘) 双引号 (") 反斜杠 (\) NULL)
  • 如果是使用的mysql,使用 mysqli_real_escape_string过滤字符,但是还不能完全防止,
  • 其实,绑定变量使用预编译语句是预防SQL注入的最佳方式,使用预编译的SQL语句语义不会发生改变。

https://www.zhihu.com/question/22953267

2、mysql那些关键字不能使用索引?

  • not in, !=, <>
  • like “%xxx"
  • 列进行函数运算的
  • WHERE index=1 OR A=10
  • 存了数值的字符串类型字段(如手机号),查询时记得不要丢掉值的引号,否则无法用到该字段相关索引,反之则没关系

3、mysql的索引类型?

主键索引、唯一索引、联合索引、普通索引

4、垂直拆表优化的主要目的是什么?

每次更新时会导致该表的查询缓存被清空。所以,你可以把这个字段放到另一个表中,这样就不会影响你对固定字段不停地读取了,因为查询缓存会帮你增加很多性能。

5、表水平拆分有几种方案?

按时间拆分 缺点 会造成老数据查询频率低,新表的查询压力大

按用户id使用hash分布,分散均匀,但是加表时需要重新hash

时间: 2024-08-25 17:03:27

mysql相关问题的相关文章

关于MySQL相关的查看显示信息:

关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的选项如字符集) 这里我们锁定php25数据库(use php25;) mysql> show create database 数据表范围(事先use php25;以class数据表为例): 三.查看该数据库里所有的数据表:(只看数据表的数量与名字) mysql> show tables; 四.查看

MySQL相关操作知识

1.解决客户端联不上MySQL服务器的问题: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; FLUSH PRIVILEGES; 2.登陆MySQL: mysql -u root -p 123456 3.查看所有数据库:show databases; //注意s和分号 4.选择数据库:use 库名 5.查看当前选择的数据库:select database(); //注意分号 6.列出所选数

mysql 相关ppt资料

mysql 相关ppt资料 个人PPT分享 发表回复 个人最近几年内整理过的PPT,都放在百度文库上了,大家可以看看 :) M?y?S?Q?L? ?t?p?c?h?测?试?工?具?简?要?手?册 高?效?L?i?n?u?x? ?S?A? P?C?服?务?器?阵?列?卡?管?理?简?易?手?册? 服?务?器?基?准?测?试 M?y?S?Q?L?数?据?库?设?计?.?优?化 M?y?S?Q?L?之?设?计?.?优?化?.?运?维 http://wenku.baidu.com/view/96f978

Mysql相关问题-----1045 Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)报错

MySQL 连接错误,使用Navicat连接MySQL出现错误:1045 Access denied for user 'root'@'localhost' (using password: YES) 解决方案: 1.编辑mysql配置文件my.ini 在mysql的安装目录下 ,在[mysqld]这个条目下加入 skip-grant-tables 保存退出后重启mysql [mysqld] #作用是跳过登录的验证 #skip-grant-tables port = 3306 basedir=C

linux 下安装mysql相关笔记

安装mysqlyum -y install mysql-serveryum -y install mysql mysql-devel 都显示完成就可以了 查看mysql的版本号rpm -qi mysql-server 数据库目录/var/lib/mysql/配置文件/usr/share /mysql(mysql.server命令及配置文件)相关命令/usr/bin(mysqladmin mysqldump等命令)启动脚本/etc/rc.d/init.d/(启动脚本文件mysql的目录) 启动my

visual studio 2015连接到MySql相关问题

vs中使用服务器资源管理器连接到MySQL没有成功.按照网上提供的解决方法,相关插件已经安装: 1.控制面板中,MySQL Connector Net 6.9.9已经安装(原安装版本为6.9.8,后升级安装为6.9.9)和MySQL for Visual Studio 1.2.6版. 根据MySQL官方说明,这两个版本相互是没有问题的:http://dev.mysql.com/doc/connector-net/en/connector-net-versions.html 2.利用NuGet安装

mysql之mysql安装、初始化,以及mysql相关命令的使用

安装mysql:    1.yum        #wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 从mysql官网上下载mysql的repo        #yum -y install mysql-server 2.二进制源码包        #tar -xf mysql-xxx.tar.bz2        #cd mysql-xxx        #make && make install

mysql相关知识点整理

一.安装 1.查看系统中是否已安装mysql [[email protected] ~]# yum list installed mysql* 已加载插件:fastestmirror, product-id, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. Determining 

Mysql相关知识点总结(一)

information_schema库:information_schema库中的表大都是temporory表,都是只读的,不能进行更新.删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件.例如: use information_schema; select table_rows from TABLES where TABLE_SCHEMA = '数据库名' AND TABLE_NAME = '表名'; 如果表使用的是InnoDB引擎,table_rows只是