zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    UVA11825 Hackers' Crackdown
    UVA 11346 Probability
    Codeforces 12 D Ball
    bzoj 4766: 文艺计算姬
    Codeforces 757 F Team Rocket Rises Again
    [HAOI2011] problem C
    Atcoder 3857 Median Sum
    bzoj4399 魔法少女LJJ
    bzoj2638 黑白染色
    bzoj4197 [Noi2015]寿司晚宴
  • 原文地址:https://www.cnblogs.com/dilei/p/6407351.html
Copyright © 2011-2022 走看看