Mysql
-
Upload
nilton-huaman -
Category
Documents
-
view
376 -
download
0
Transcript of Mysql
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 1/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 1
Contenido
INTRODUCCION........................................................................................................................ 3
MYSQL......................................................................................................................................... 4
HISTORIA .................................................................................................................................... 4
CARACTERÍSTICAS ................................................................................................................. 5
VENTAJAS .................................................................................................................................. 7
DESVENTAJAS.......................................................................................................................... 8
PLATAFORMAS ......................................................................................................................... 8
LENGUAJES DE PROGRAMACIÓN ...................................................................................... 9
APLICACIONES ....................................................................................................................... 10
RENDIMIENTO MYSQL.......................................................................................................... 10
GUÍAS GENERALES DE AJUSTE........................................................................................ 16
INSTALACIÓN DE MYSQL EN WINDOWS 7 ..................................................................... 20
Instalar MySQL en Windows .............................................................................................. 20
Configurar y Activar Servidor MySQL en Windows......................................................... 21
Instalación de MySQL en Ubuntu y operaciones en Ubuntu......................................... 28
Configuración ........................................................................................................................ 28
Conexión desde un host remoto ........................................................................................ 29
Gestión de las bases de datos ........................................................................................... 30
Crear una Base de datos ................................................................................................ 30
Eliminar una Base de datos ............................................................................................ 30
Hacer Backup de una Base de datos ............................................................................ 31
Restaurar el Backup de una Base de datos................................................................. 31
APLICACIONES ADMINISTRATIVAS DE MYSQL ............................................................ 32
ALMACENAMIENTO DE DATOS EN MYSQL .................................................................... 33
Arquitectura de Almacenamiento en Mysql ...................................................................... 33
Comparación de los diferentes tipos de almacenamiento en Mysql ............................ 34
EMPRESAS QUE UTILIZAN MYSQL ................................................................................... 35
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 2/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 2
CALIDAD DEL SOFTWARE MYSQL .................................................................................... 35
PRECIOS MYSQL.................................................................................................................... 36
CONCLUSIONES Y RECOMENDACIONES....................................................................... 37
BIBLIOGRAFIA ......................................................................................................................... 39
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 3/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 3
INTRODUCCION
MySQL es un sistema de gestión de bases de datos relacional, multihilo y
multiusuario con más de seis millones de instalaciones. MySQL AB —desde
enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle
Corporation desde abril de 2009— desarrolla MySQL como software libre en un
esquema de licenciamiento dual.
Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con estalicencia, pero para aquellas empresas que quieran incorporarlo en productos
privativos deben comprar a la empresa una licencia específica que les permita
este uso. Está desarrollado en su mayor parte en ANSI C.
Al contrario de proyectos como Apache, donde el software es desarrollado por
una comunidad pública y los derechos de autor del código están en poder del
autor individual, MySQL es patrocinado por una empresa privada, que posee el
copyright de la mayor parte del código.
Esto es lo que posibilita el esquema de licenciamiento anteriormente
mencionado. Además de la venta de licencias privativas, la compañía ofrece
soporte y servicios. Para sus operaciones contratan trabajadores alrededor del
mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark,
Allan Larsson y Michael Widenius.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 4/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 4
MYSQL
El sistema de base de datos operacional MySQL es hoy en día uno de los másimportantes en lo que hace al diseño y programación de base de datos de tipo
relacional. Cuenta con millones de aplicaciones y aparece en el mundo
informático como una de las más utilizadas por usuarios del medio. El
programa MySQL se usa como servidor a través del cual pueden conectarse
múltiples usuarios y utilizarlo al mismo tiempo.
HISTORIA
MySQL es un sistema de gestión de bases de datos relacionales, creado por la
empresa sueca MySQL AB y licenciado bajo GPL (Licencia Pública General).
Su diseño le permite soportar una gran carga de forma rápida y muy eficiente.
MySQL surgió por la necesidad que vieron sus creadores de tener un gestor
de bases de datos rápido y sencillo, ya que los SGBDs en general no eran
lo bastante flexibles ni veloces para lo que necesitaban, por lo que tuvieronque desarrollar nuevas funciones. De todo esto surgió una nueva interfaz
SQL (con código más portable) desarrollada en lenguaje C y con apariencia
similar a los nombres y funciones de muchos de sus programas.
Su principal objetivo de diseño fue la velocidad, por ello en sus primeras
versiones se suprimieron algunas características de otros SGBDs (Sistemas de
Gestión de Base de Datos), como el control de transacciones y las
subconsultas. Consume pocos recursos y se distribuye bajo licencia GPL.
Su primera versión publicada bajo licencia GPL fue la 3.22 por el año de 1997,
luego han surgido las que hoy en día son versiones estables y que se pueden
descargar desde su sitio web (www.mysql.com) como la 3.23, 4.0 y 4.1, la 5.0
publicada en el año 2005 y la 5.1 publicada el 2006. Se está desarrollando
actualmente la versión 5.2 para publicarse en a finales del 2006 o inicios del
2007. La versión en la que se hicieron las respectivas pruebas y los ejemplos
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 5/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 5
que se muestran en la presente monografía es la “5.0.24” para el
sistema operativo Microsoft Windows XP.
Aunque MySQL es software libre y gratuito, MySQL AB distribuye las
respectivas versiones comerciales de MySQL, que se diferencian de lasversiones libres en el soporte técnico y las actualizaciones que se ofrecen.
Este gestor de bases de datos es probablemente el gestor más usado en el
mundo del software libre, debido sobre todo a su gran rapidez y desempeño,
su fácil instalación y configuración además de la facilidad de uso mediante
herramientas que permiten su operación a través de diversos lenguajes de
programación.
El nombre de MySQL procede de la combinación de My, hija del cofundador
Michael "Monty" Widenius, con el acrónimo SQL (según la documentación de la
última versión en inglés). Por otra parte, el directorio base y muchas de las
bibliotecas usadas por los desarrolladores tenían el prefijo My.
El nombre del delfín de MySQL es Sakila y fue seleccionado por los fundadores
de MySQL AB en el concurso “Name the Dolphin ”. Este nombre fue enviado
por Ambrose Twebaze, un desarrollador de software de código abierto africano,
derivado del idioma SiSwate, el idioma local de Swazilandia y corresponde al
nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen
de Ambrose.
CARACTERÍSTICAS
Inicialmente, MySQL carecía de algunos elementos esenciales en las bases de
datos relacionales, tales como integridad referencial y transacciones. A pesar
de esto, atrajo a los desarrolladores de páginas web con contenido dinámico,
debido a su simplicidad, de tal manera que los elementos faltantes fueron
complementados por la vía de las aplicaciones que la utilizan. Poco a poco
estos elementos faltantes, están siendo incorporados tanto por desarrolladores
internos, como por desarrolladores de software libre.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 6/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 6
Un amplio subconjunto de ANSI SQL 99, y varias extensiones.
Soporte a multiplataforma.
Procedimientos almacenados Disparadores (triggers).
Vistas actualizables.
Soporte a VARCHAR
INFORMATION_SCHEMA
Modo Strict
Soporte X/Open XA de transacciones distribuidas; transacción en dos
fases como parte de esto, utilizando el motor InnoDB de Oracle. Motores de almacenamiento independientes (MyISAM para lecturas
rápidas, InnoDB para transacciones e integridad referencial).
Transacciones con los motores de almacenamiento InnoDB, BDB Y
Cluster; puntos de recuperación (savepoints) con InnoDB.
Soporte para SSL.
Query caching
Sub-SELECTs (o SELECTs anidados). Réplica con un maestro por esclavo, varios esclavos por maestro, sin
soporte automático para múltiples maestros por esclavo.
Indexing y búsqueda de campos de texto completos usando el motor de
almacenamiento MyISAM.
Embedded database library
Soporte completo para Unicode.
Conforme a las reglas ACID usando los motores InnoDB, BDB y Cluster. Shared-nothing clustering through MySQL Cluster.
Usa GNU Automake, Autoconf, y Libtool para portabilidad
Uso de multihilos mediante hilos del kernel.
Usa tablas en disco b-tree para búsquedas rápidas con compresión de
índice
Tablas hash en memoria temporales
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 7/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 7
El código MySQL se prueba con Purify (un detector de memoria perdida
comercial) así como con Valgrind, una herramienta GPL.
Completo soporte para operadores y funciones en cláusulas select y
where. Completo soporte para cláusulas group by y order by, soporte de
funciones de agrupación
Seguridad: ofrece un sistema de contraseñas y privilegios seguro
mediante verificación basada en el host y el tráfico de contraseñas está
cifrado al conectarse a un servidor.
Soporta gran cantidad de datos. MySQL Server tiene bases de datos de
hasta 50 millones de registros. Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada
índice puede consistir desde 1 hasta 16 columnas o partes de columnas.
El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).
Los clientes se conectan al servidor MySQL usando sockets TCP/IP en
cualquier plataforma. En sistemas Windows se pueden conectar usando
named pipes y en sistemas Unix usando ficheros socket Unix.
En MySQL 5.0, los clientes y servidores Windows se pueden conectarusando memoria compartida.
MySQL contiene su propio paquete de pruebas de rendimiento
proporcionado con el código fuente de la distribución de MySQL
VENTAJAS
Velocidad al realizar las operaciones, lo que le hace uno de los gestores
con mejor rendimiento.
Bajo costo en requerimientos para la elaboración de bases de datos, ya
que debido a su bajo consumo puede ser ejecutado en una máquina con
escasos recursos sin ningún problema.
Facilidad de configuración e instalación.
Soporta gran variedad de Sistemas Operativos.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 8/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 8
Baja probabilidad de corromper datos, incluso si los errores no se
producen en el propio gestor, sino en el sistema en el que está.
Conectividad y seguridad.
Acceso a las bases de datos de forma simultánea. Seguridad, en forma de permisos y privilegios.
Gratuito.
DESVENTAJAS
No tiene integridad referencial Lento con grandes bases de datos
No tiene tantas capacidades como otros gestores profesionales
Dificultad de manejo
No es intuitivo como otros programas.
Un gran porcentaje de utilidades de MySQL no están documentadas.
El hecho de que no maneje integridad referencial hace de este gestor
una solución pobre sobre todo para aquellos programadores queprovienen de otros gestores que si poseen esta característica.
PLATAFORMAS
MySQL funciona sobre múltiples plataformas, incluyendo:
AIX
BSD
FreeBSD
HP-UX
GNU/Linux
Mac OS X
NetBSD
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 9/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 9
Novell Netware
OpenBSD
OS/2 Warp
QNX SGI IRIX
Solaris
SunOS
SCO OpenServer
SCO UnixWare
Tru64
eBD Windows 95, Windows 98, Windows NT, Windows 2000, Windows XP,
Windows Vista, Windows 7 y Windows Server (2000, 2003 y 2008).
OpenVMS.
LENGUAJES DE PROGRAMACIÓN
Existen varias APIs que permiten, a aplicaciones escritas en diversos
lenguajes de programación, acceder a las bases de datos MySQL, incluyendo
C, C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una
implementación nativa del driver de Java), Lisp, Perl, PHP, Python,
Ruby,Gambas, REALbasic (Mac), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada
uno de estos utiliza una API específica. También existe un interfaz ODBC,llamado MyODBC que permite a cualquier lenguaje de programación que
soporte ODBC comunicarse con las bases de datos MySQL. También se puede
acceder desde el sistema SAP, lenguaje ABAP.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 10/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 10
APLICACIONES
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, enplataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como
aplicación web está muy ligada a PHP, que a menudo aparece en combinación
con MySQL. MySQL es una base de datos muy rápida en la lectura cuando
utiliza el motor no transaccional MyISAM, pero puede provocar problemas de
integridad en entornos de alta concurrencia en la modificación. En aplicaciones
web hay baja concurrencia en la modificación de datos y en cambio el entorno
es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de
aplicaciones.
RENDIMIENTO MYSQL
Como resultado del creciente papel de MySQL en grandes organizaciones, su
uso se está convirtiendo más y más de alto rendimiento. Esto significa, por
supuesto, que MySQL necesita proporcionar más capacidad de respuesta, alto
rendimiento, y fiabilidad. Ya conocido en la industria por ser un servidor de
bases de datos increíblemente rápido, muy a menudo MySQL está ya
preparado para la tarea directamente después de instalarlo. Sin embargo hay
un par de cosas que pueden fácilmente hacerlo lento, aunque no es extraño,
que esto se deba también a un pobre diseño de la aplicación. Otras veces la
configuración por defecto de MySQL no es lo suficientemente buena como para
realizar la tarea que tiene entre manos. Y otras veces se necesita tener un
poco más de hardware.
Cuando intentamos hacer más rápida una aplicación de bases de datos, hay
que empezar con la aplicación en sí y asegurarse de que las tablas están
normalizadas de forma adecuada, y las columnas están indexadas, esto es
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 11/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 11
siempre un buen comienzo. Pero si ya se ha hecho todo lo anterior y las cosas
siguen siendo lentas, llega el momento de echarle un ojo al servidor MySQL en
sí. No es tecnología aeroespacial Aunque puede ser que suene intimidante, el
ajuste del rendimiento sólo trata de sacar el mayor rendimiento posible de unsistema. Para hacer esto es necesario entender cuáles son las variables que
están involucradas y como pueden afectar el buen funcionamiento del servidor.
Antes de entrar en los detalles, vale la pena reiterar un hecho importante: las
técnicas que se van a mostrar no arreglarán búsquedas mal escritas o sin
optimizar, un mal diseño de la base de datos, u otros problemas del diseño de
la aplicación. Puede que sirvan para aliviar el esfuerzo de un servidor ocupado,
pero simplemente se está posponiendo lo inevitable. La única solución a una
aplicación mal escrita o un diseño pobre de la base de datos es irse al código y
arreglarlo. Realmente, arreglar las consultas lentas y/o una aplicación
pobremente diseñada conseguirá mejores resultados que perder el tiempo con
el ajuste del servidor.
Si no se está seguro por dónde empezar, se tiene que habilitar el archivo de
registro para las búsquedas lentas (slow query log) tal y como se explica en el
manual de MySQL, y luego simplemente observar y revisar cualquier búsqueda
que no se esperaba que sea lenta. También es posible que se encuentren
algunas búsquedas rápidas en el archivo de las búsquedas lentas. Esto se
debe a que MySQL considera cualquier búsqueda como lenta si no usa un
índice. Uso de memoria Del lado del servidor, el único y más importante factor
en determinar cómo de bien rendirá MySQL, es la memoria. MySQL es capaz
de ejecutar varios subprocesos a la vez. Esto significa que cada vez que se
realiza una conexión, MySQL crea un subproceso. Cada subproceso consume
memoria. El almacenamiento en caché de los resultados también consume
memoria. Se puede pensar entonces, que entre más memoria tengamos en el
servidor, será lo mejor. Sin embargo no es suficiente con tener mucha memoria
disponible, es necesario indicarle a MySQL como queremos que use la
memoria.
Las configuraciones por defecto de MySQL son bastante conservadoras para el
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 12/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 12
hardware de hoy en día, sin embargo, si se tiene un servidor MySQL dedicado
con varios cientos de mega bytes de RAM, se debe ser capaz de darle a
MySQL una porción bastante grande de ella para trabajar. Por defecto, sólo
usará una pequeña porción de lo que haya disponible; esto se debe a que nohay ninguna forma de saber si está corriendo en un servidor dedicado donde
será usado de forma continua o si está corriendo en un esforzado portátil
donde sólo se usa para almacenar una pequeña aplicación.
Mucha de la información presentada a continuación se centrará en el uso de la
memoria y se asume que se está usando el tipo de tabla por defecto de
MySQL, MyISAM. Actualmente existen otros tipos de tablas transaccionales
más avanzadas, tales como InnoDB o Gemini.
MySQL usa la memoria para una variedad de búfferes internos y cachés que
influyen en el número de veces que se ha de acceder a archivos que residen
en el disco. Cuanto más a menudo tenga que esperar a que responda un disco,
más lento será. Aún los discos duros más modernos siguen siendo un orden de
magnitud más lentos que la memoria RAM, y dado la reciente baja en los
precios de la memoria, es muy factible que se pueda añadir más memoria al
servidor y así acelerar los procesos. Actualizar a discos duros más rápidos
debería ser la última opción.
Los búfferes y cachés de MySQL son de dos tipos: globales, y por hilo.
Globales: tal y como sugiere el nombre, estas áreas de memoria son
reservadas una vez y son compartidas a través de todos los hilos de MySQL.
Dos de los más importantes son el búffer de claves y la caché de tablas.
Debido a que son búfferes compartidos, el objetivo es que sean lo más grandes
posibles.
Por hilo: estos búfferes reservan memoria individualmente a medida que
necesitan realizar operaciones particulares, tales como ordenar o agrupar
datos. A propósito, la mayoría de los búfferes MySQL se reservan en esta
forma.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 13/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 13
A continuación se examina primero que función tienen cada uno de los búfferes
y como configurar e inspeccionar sus valores, posteriormente se mostrará
como examinar contadores de rendimiento de MySQL y juzgar si los cambios
que se realizan tienen implicaciones o no.
Búffer de claves:
El búffer de claves es donde MySQL cachea los bloques de índices para tablas
MyISAM. Cada vez que una búsqueda usa un índice, MySQL mirará antes de
nada a ver si el índice relevante está o no en memoria. El parámetro key_buffer
en el archivo my.cnf determina que tan grande puede ser este búffer. Una vez
que el búffer este lleno, MySQL hará sitio para nuevos datos reemplazando
datos antiguos que no hayan sido usados recientemente.
El tamaño del búffer de claves aparece como key_buffer_size en la salida de
SHOW VARIABLES. Con un búffer de claves de 384 MegaBytes, se vería algo
como:
key_buffer_size 402649088
Como una recomendación general, en un servidor MySQL dedicado se debería
reservar entre el 20 y el 50 por ciento de la memoria RAM para el búffer de
claves de MySQL. Si se tiene un GigaByte de memoria se puede empezar con
algo como:
set-variable= key_buffer= 128M ó incluso:
set-variable= key_buffer= 256M
Si sólo se permitiera modificar un parámetro en el servidor MySQL, el búffer de
claves sería lo primero que se tendría que considerar. Los índices son también
muy importantes para el rendimiento global de cualquier servidor de bases de
datos por lo que es difícil equivocarse al hacer más espacio en su memoria
para ellos.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 14/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 14
Si no se especifica un tamaño al búffer de claves, MySQL usará su tamaño por
defecto que está cerca de los 8MB. Pero claro, tiene muy poco sentido
configurar el valor del búffer de claves tan alto, hacerlo podría matar de hambre
al sistema operativo respecto a la memoria que necesita para escrituras dedisco y otras tareas.
Caché de tablas Las tablas MyISAM están compuestas de tres archivos en
disco:
El archivo de datos nombredetabla.MYD, el archivo índice nombredetabla.MYI,
y finalmente, el archivo de definición de la tabla llamado nombredetabla.FRM.
Para poder usar una única tabla, MySQL necesita de hecho abrir los tres
archivos. El archivo .FRM se cerrará después de que lea el esquema, pero los
demás permanecerán abiertos, MySQL no los cerrará hasta que lo necesite.
Esto evita una sobrecarga asociada con la apertura y cierre de los archivos si la
tabla se usa frecuentemente. Los archivos normalmente no se suelen cerrar
hasta que ocurre uno de los siguientes eventos: * La tabla se ha cerrado de
forma explícita mediante FLUSH TABLES. * La tabla se ha desechado. * El
servidor esta siendo reiniciado. * El número total de tablas abiertas ha
alcanzado el valor del parámetro table_cache. El último evento es
particularmente importante si se tienen muchas tablas que se usan a menudo
entre todas las bases de datos. El valor por defecto de table_cache es de 64,
así que si se tienen unos cientos de tablas que se usen de forma activa,
MySQL va a desperdiciar mucho tiempo y esfuerzo abriendo y cerrando
innecesariamente estos archivos.
Incrementar el tamaño de la caché de tablas ciertamente ayudará en esta
situación, pero se debe tener cuidado de no hacer el valor demasiado grande,
ya que todos los sistemas operativos tienen un límite en el número de los
archivos abiertos por un mismo proceso. De hecho, algunos también tienen
limitado el número total de archivos abiertos que puede tener un único usuario.
Si MySQL intenta abrir demasiados archivos, el sistema operativo se negará a
permitirlo y MySQL generará un mensaje de error en el archivo de registro deerrores. Ante la duda, se tienen que comprobar las limitaciones del sistema
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 15/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 15
operativo.
En casos extremos, se puede incrementar el número de descriptores de
archivos disponibles por medio de las opciones de configuración del kernel. Losdescriptores de archivos abiertos están reservados por un único proceso y
compartidos por todos sus hilos. Al contrario que muchos de los demás
parámetros, la caché de tablas se aplica a todos los tipos de tablas basadas en
disco de MySQL. Búfferes de registro Siempre que MySQL ha de escanear una
tabla, el hilo que realiza el escaneo reservará un búffer de registro para cada
tabla que ha de escanear. Esto sucede típicamente cuando MySQL decide que
es más eficiente escanear la tabla que usar un índice para una búsqueda.
También ocurre cuando simplemente no hay un índice que se pueda usar.
Al incrementar el valor de record_buffer en el archivo my.cnf, se permite que
MySQL lea las tablas en trozos más grandes. Es probable que esto reduzca el
número de búsquedas en el disco y haga que el escaneo sea
significativamente más rápido en un servidor muy atareado.
Sin embargo, se tiene que ser muy cuidadoso con el búffer de registro si se
tienen muchos clientes que realizan búsquedas completas sobre tablas. Debido
a que el búffer de registro se reserva por cada hilo, se puede acabar en una
situación donde clientes individuales hagan que se reserven búfferes de
registro al mismo tiempo. Si el resto de la memoria está limitada es probable
que se empiece a hacer uso de la memoria de intercambio y se verá
dramáticamente reducido el rendimiento. En la versión 3.23.41 se introdujo un
parámetro relacionado denominado record_rnd_buffer.
Al igual que record_buffer, se usa para escanear un gran número de filas. El
record_rnd_buffer se usa para búsquedas que resultan en una ordenación
intermedia del archivo además de algunas lecturas de registro no secuenciales.
Afortunadamente, si no se fija el valor de record_rnd_buffer se establecerá por
defecto el valor de record_buffer.
Búffer de ordenación
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 16/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 16
Tal y como implica su nombre, el búffer de ordenación se usa para responder a
búsquedas que involucren elordenamiento de los datos -aquellas con una
cláusula ORDER BY en ellas. Además, el búffer de ordenación se usa para las
búsquedas que involucren agrupar datos -aquellas con una cláusula GROUPBY. Al igual que los demás búfferes que se han visto, el búffer de ordenación
es relativamente pequeño por defecto. Al ajustar la entrada de sort_buffer en el
archivo my.cnf:
set-variable= sort_buffer= 8M
Se puede reducir dramáticamente la cantidad de tiempo que se usa para
ordenar grandes grupos de resultados. El búffer de ordenación aparece como
sort_buffer en la sálida de SHOW VARIABLES, por ejemplo:
sort_buffer 8388600
El mismo tipo de aviso se aplica al búffer de ordenación que para el búffer de
registros. Es un búffer que MySQL reserva frecuentemente y se reserva por
hilo. Así que, hay que incrementarlo con cuidado en un servidor que ejecute
muchas búsquedas concurrentes
GUÍAS GENERALES DE AJUSTE
Antes de discutir cómo medir o juzgar los efectos de cualquier cambio que se
realice, se debe considerar brevemente un acercamiento a la afinación del
rendimiento. Hay unas cuantas cosas que se deben tener en mente cuando se
empiezan hacer y probar cambios:
* Sólo cambiar un parámetro cada vez. Puede que los cambios no resulten
siempre en el comportamiento esperado. Si se cambian demasiados
parámetros a la vez, se corre el riesgo de asignar un cambio en el
comportamiento al parámetro equivocado.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 17/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 17
* No hacer cambios en sistemas en producción. De ser posible, se debe tener
un servidor de pruebas disponible que sea parecido en naturaleza al servidor
de bases de datos de producción. Hacer cambios en la configuración de
MySQL seguramente requerirá que se pare y reinicie el servidor, lo que haráque los usuarios experimenten interrupciones en el servicio.
* Usar datos reales. El tipo de datos que se estén usando afecta a como
responde MySQL a las búsquedas. Idealmente, se debería usar una copia de
las bases de datos de producción. Si no es posible hacer esto, entonces se
debería intentar construir un subconjunto representativo de datos.
* Realizar pruebas realistas. Es fácil asumir que se sabe que pruebas aplicar
simplemente porque se sabe cuáles son las áreas problemáticas. Sin embargo,
algunos cambios de la configuración aceleran partes lentas de una aplicación al
mismo tiempo que hacen lentas las cosas que antes eran bastante rápidas.
* Ser sistemático y registrar descubrimientos. Es importante que se mantenga
la pista de los cambios que se realizan y como afectan al rendimiento. Después
de varias horas (o incluso días) de pruebas, es más que probable que no se
recuere de exactamente que es lo que se ha cambiado y si los cambios fueron
positivos o negativos.
Observando los números de rendimiento de la base de datos
Con los pocos puntos de partida en mente y un concepto de cómo hacer
pruebas, ahora se debe considerar cómo monitorear el progreso.
Afortunadamente, MySQL tiene más de 50 contadores internos (o variables de
estado), que mantienen la pista de cuántas veces ocurren varios tipos de
eventos.
Dado que el espacio en este artículo sirve para comentar solamente algunas de
las variables de estado de MySQL, en el manual de MySQL se describen todas
y cada una de ellas en mayor detalle. Para ver estos números, se puede usar la
sentencia SHOW STATUS. En este caso se mencionan únicamente las
variables relacionadas con el búffer de claves:
SHOW STATUS LIKE 'Key%'
Key_read_requests 3844786889
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 18/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 18
key_reads 16525182
Key_write_requests 303516563
Key_writes 152315649
Estas cuatro variables dicen mucho sobre el rendimiento del búffer de clavesde MySQL. Cada vez que MySQL sea capaz de leer una clave (o índice) del
búffer de claves (en vez de ir a disco), incrementará automáticamente el valor
de key_read_requests. Si MySQL ha de leer la clave del disco porque no
estaba ya en la caché, incrementará key_reads. La misma lógica se aplica para
las escrituras de disco.
Sabiendo esto, podemos calcular la eficiencia (o hit rate) para el búffer de
claves.
Usando una fórmula como:
100 - ((Key_reads / Key_read_requests) * 100)
Podemos obtener un porcentaje que representa cómo a menudo es capaz
MySQL de leer las claves directamente de la caché en vez de irse a disco.
Cuanto más cerca esté el valor de 100, mucho mejor. Usando los números de
arriba, se tiene un hit rate de cerca del 99.57 por ciento. Generalmente, suele
ser una buena idea mantener este porcentaje por encima del 90 por ciento. A
fin de cuentas, de lo que se trata, es de tener una mejora medible del
rendimiento de MySQL.
Observando los números del rendimiento del sistema
Monitorear los cambios de rendimiento en MySQL es sólo una parte de la labor,
también es necesario ver qué es lo que está pasando desde el punto de vista
del sistema operativo, ya que como cualquier otra aplicación, está a merced de
lo que el sistema operativo quiera permitirle hacer, así que es importante que
se mantenga una vista global sobre toda la actividad del sistema operativo.
Se debe tener una idea de la actividad actual del sistema y características del
rendimiento de MySQL antes de empezar a hacer pruebas. Sin una base parala comparación, realmente no se sabrá cómo ha cambiado el impacto de
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 19/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 19
MySQL en el sistema. Finalmente, cabe mencionar que únicamente se ha
descrito una mínima parte de lo que representa el rendimiento en el lado del
servidor para MySQL.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 20/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 20
INSTALACIÓN DE MYSQL EN WINDOWS 7
Instalar MySQL en Windows
Tenemos tres tipos de instalación, típica, completa y personalizada, típica ycompleta son muy sencillas basta con seleccionar siguiente, siguiente,siguiente…., pero haremos la instalación personalizada para puntualizar ciertos
aspectos interesantes de la instalación de MySQL.
Luego de seleccionar Custom (personalizada), nos pide indicar que elementosinstalaremos, por defecto instalará todo menos los “Developers Components“,
son opcionales, contienen ejemplos, scripts y algunas librerías para los máscuriosos.
La carpeta de instalación por defecto es c:\Archivos dePrograma\MySQL\MySQL Server 5.1\, podemos cambiarla con el botónChange, y debes recordarla para más adelante. Presionamos siguiente einstalar para que comience a realizar la instalación de MySQL.
Al finalizar la instalación nos presenta la versión Entreprise que es de pago y lohace a modo de publicidad, presionamos siguiente para continuar.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 21/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 21
Es momento de configurar MySQL Server como un servicio en Windows 7 y silo deseamos registrarnos en SunConnect para obtener noticias, novedades ynotificaciones de actualizaciones deMySQL, luego presionamos Finalizar.
Configurar y Activar Servidor MySQL en Windows
En el asistente de configuraciones podemos decidir entre una configuracióndetallada o estándar. La instalación estándar agrega MySQL como un servicioWindows que se ejecuta automáticamente al iniciar, se debe utilizar encomputadoras que no tengan instaladas MySQL.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 22/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 22
Pero haremos la configuración detallada que por ser más precisa nos permiteahondar más en este artículo. En este punto de la configuración nos brinda tresformas posible:
Developer MachineEs la que vamos a utilizar nosotros como desarrolladores, ya que usaremosMySQL más que nada para testear nuestras aplicaciones. En esta opciónMySQL Server se configura para utilizar un mínimo de recursos y memoriasde forma de dejar parte del PC disponible para usarlo en otras aplicaciones.
Server Machine
Recomendada cuando instalamos MySQL Server en un servidor dondeexisten otras aplicaciones en modo Servidor, por ejemplo Aplicaciones Web
que se sirven de este mismo servidor. En este caso MySQL hace un usointermedio de memoria y recursos.
Dedicated MySQL Server Machine
Esta opción configura MySQL asumiendo que solo MySQL Server estarácorriendo en este servidor, no deja lugar a que corran otras aplicaciones. Enesta configuración MySQL utilizara toda la memoria y recursos disponibles.
Seleccionaremos en nuestro caso Developer Machine:
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 23/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 23
y presionamos siguiente. Ahora debemos definir el tipo de uso que se le dará alas bases de datos.
También se presenta tres opciones, debemos seleccionar una de ellasdependiendo del tipo de optimización que deseamos:
Multifunctional DatabaseDefine un propósito general, es la que seleccionaremos en nuestro caso paratesting y desarrollo. Optimizara el servidor para transacciones rápidasen InnoDB y MyISAM.
Transactional Database Only
Se optimiza para servidor de aplicaciones y aplicaciones web.Seleccionaremos esta opción si la aplicación que consume datosde MySQL está en producción y utiliza principalmente InnoDB, aunque
también admite MyISAM aunque no lo beneficia.
Non-Transactional Database Only
Optimo para aplicaciones web sencillas, de control o programas de análisis.Solo se activa el modelo no-transaccional MyISAM, por tanto noadmite InnoDB.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 24/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 24
En nuestro caso seleccionaremos Multifunctional Database.
La siguiente selección es la carpeta donde se almacenaran los datos, pordefecto podemos usar una subcarpeta que se creará en el lugar de lainstalación de MySQL, y continuamos con siguiente.
La cantidad de conexiones concurrentes al servidor es lo siguiente que
debemos definir, si son hasta 20 conexiones seleccionamos Decision Support(DSS)/OLAP, en caso de requerir hasta 500 conexiones concurrentes
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 25/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 25
seleccionamos Online Transaction Processing (OLTP), o en este caso como espara testing seleccionamos Manual Setting, y definimos el número deconexiones usando 5 o 10 conexiones.
La configuración de red es lo siguiente que debemos definir
La configuración de red es lo siguiente que debemos definir indicando su
utilizaremos protocoloTCP/IP y el puerto, dejaremos los valores por defectoindicando el puerto 3306 y también marcando “Add firewall exception for thisport” de forma de no tener problemas con el Firewall, y presionamos siguiente.
El juego de caracteres es lo siguiente a indicar
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 26/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 26
Por defecto define Standard Character Set, o latin1, también conocidocomo iso-8859-1, pero la mayoría de los servidores web y aplicacionescomo WordPress utilizan por defecto UTF8 ya que soporta mejor caracteresmultilenguaje, la opción es Best Support For Multilingualism que
seleccionaremos en este caso, la última opción Manual Selected DefaultCharacter Set / Collation nos permite seleccionar manualmente el Char Set.
Debemos indicar ahora que MySQL Server se ejecutar como un ServicioWindows (Install As Windows Service),
indicar un nombre de servicio, que dejaremos como MySQL, y marcaremostambién la opción deincluir los archivos de ejecución de MySQL en el PATH deWindows (Include Bin Directory in Windows PATH) y continuamos consiguiente.
En este punto debemos prestar mucha atención
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 27/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 27
ya que es donde definimos el password del administrador principal del ServidorMySQL, o sea el usuario root. También podemos indicar si queremos quenuestras bases de datos se accedan desde maquinas remotas con el
usuario root, y continuamos con siguiente.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 28/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 28
hemos culminado con estos los pasos, presionamos Execute para que setermine de Instalar y Configurar MySQL. Presionamos Finish cuando aparezcael mensaje final de instalación.
En el menú inicio podemos ejecutar nuevamente el Asistente de Configuraciónde Instancias MySQL (MySQL Server Instance Config Wizard) en caso que seanecesario.
Ahora ya podemos utilizar MySQL desde nuestras aplicaciones PHP, .NET, yotras.
Abrimos MySQL desde la línea de comandos: mysql -u root -p (Enter), nospide password e ingresamos el anterior
En el prompt de MySQL, abrimos la base MySQL: mysql> use mysql
Eliminamos los usuarios y permisos sobrante: mysql> delete from user wherehost=”localhost” and user=”";
Cambiamos el password: mysql> update user setpassword=password(“acaelnuevopassword”) wher user=”root”;
Limpiamos el cache de Tablas: mysql> flush tables;
Y el de permisos: mysql> flush privileges;
Instalación de MySQL en Ubuntu y operaciones en Ubuntu
Para instalar MySQL, debes instalar los siguientes paquetes: mysql-
server y mysql-client. Existe un entorno gráfico del programa llamado mysql
administrator, dependiente de los anteriores paquetes. Y opcionalmente el
paquete 'mysql-query-browser, que servirá para realizar consultas.
Configuración
Se te pedirá crear la contraseña del administrador cuando se instale el
programa.
En versiones antiguas no se crea con la instalación. Debemos crearla
manualmente, nada más instalar el servidor. Para hacerlo teclea en un
Terminal.
$ sudo /usr/bin/mysqladmin -u root password clavenueva
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 29/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 29
Puedes cambiar el archivo /etc/mysql/my.cnf para configurar las opciones
básicas -- archivo de registro, número de puerto, etc. Mira al
archivo /etc/mysql/my.cnf para más detalles.
Una vez asignada una contraseña al administrador, puedes conectar con elservidor mySQL de la manera siguiente:
$ mysql -h localhost -u root -p
Donde "localhost" és la dirección de tu host y "root" el nombre de usuario. A
continuación introduce el password de la base de datos. Te aparece la
siguiente pantala:
Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 20 to server version: 5.0.24a-Debian_9ubuntu2-
log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
Para desconectar,
mysql> QUIT
Bye
Conexión desde un host remoto
Por defecto, MySQL no permite que cualquier usuario puede acceder a las
bases de datos usando un conexión TCP. Para que lo permita debes crear un
usuario con los permisos correspondientes.
También tendrás que editar el fichero /etc/mysql/my.cnf y modificar la línea:
bind-address = 127.0.0.1
Cambiándola por la direccion IP del servidor, o en caso de que se quiera
escuchar en todas las IPs:
bind-address = 0.0.0.0 o la IP que tengas en tu seridor si tienes IP fija
Despues reinicia el servicio.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 30/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 30
shell>cd etc/init.dshell>./mysql restart
Para que todos los demás ordenadores tengan acceso al servidor. Para másseguridad puedes poner solamente una lista de las IPs de los ordenadores que
quieres que tengan acceso.
Si aún no te puedes conectar desde un ordenador remoto tendrás que editar el
fichero /etc/hosts.allow y añadir la línea:
mysqld: all
Gestión de las bases de datos
Crear una Base de datos
Para crear una base de datos nueva puedes hacerlo de, al menos, dos formas.
Abre un Terminal y ejecuta lo siguiente.
$ mysql -h servidor -u usuario -p
Enter password:mysql> CREATE DATABASE nombre_de_la_base_de_datos;quit
Más información en Sintaxis de CREATE DATABASE. También puedes usar la
orden mysqladmin.
$ mysqladmin -h servidor -u usuario -p create nombre_de_la_base_de_datos
Eliminar una Base de datos
Para eliminar una base de datos que ya no es necesaria en el sistema también
tenemos, al menos, dos métodos. En un ventana de Terminal ejecuta.
$ mysql -h servidor -u usuario -p
Enter password:mysql> DROP DATABASE nombre_de_la_base_de_datos;quit
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 31/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 31
Más información en Sintaxis de DROP DATABASE. También puedes obtener el
mismo resultado con el comando mysqladmin.
$ mysqladmin -h servidor -u usuario -p drop nombre_de_la_base_de_datos
Hacer Backup de una Base de datos
Para hacer una copia de seguridad de una base de datos tiene el siguiente
comando:
$ mysqldump -h servidor -u usuario -p nombre_de_la_base_de_datos >backup.sql
Para hacer una copia de seguridad de las bases de datos MySQL de un
servidor puedes usar el siguiente script:
#!/bin/bash
## BEGIN CONFIG ## HOST=localhostUSER=usuarioPASS=secreto
BACKUP_DIR=Backup## END CONFIG ##
if [ ! -d $BACKUP_DIR ]; thenmkdir -p $BACKUP_DIR
fi
# Backup de MySQL MYSQL_DBS=$(mysqlshow -h $HOST -u $USER -p$PASS | awk ' (NR > 2) &&(/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /mysql/) { print $2 }');
for DB in $MYSQL_DBS ; doecho "* Backuping MySQL data from $DB@$HOST..."mysqldump -h $HOST -u $USER -p$PASS $DB >
$BACKUP_DIR/mysql_$DB.sqldone
Restaurar el Backup de una Base de datos
Para restaurar una base de datos creada anteriormente ejecuta en un Terminal.
$ mysql -h servidor -u usuario -p nombre_de_la_base_de_datos < backup.sql
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 32/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 32
APLICACIONES ADMINISTRATIVAS DE MYSQL
Aplicaciones Administrativas de Mysql
Aplicación Descripción
Mysql Migration Toolkit
Mysql Migration Toolkit administra y realiza tareas de
migracion de datos a Oracle, Sql Server, Access, Jdbc
Generico .
Mysql AdministratorAdministra las instancias, backup, usuarios, performance,
logs, replica
Mysql WorkbenchEs el nuevo dbDesigner con al cual se puede hacer el
proceso de ingenieria inversa
Mysql Monitor Un Monitor del Servidor y manejador de las instancias
Mysql Query Browser
Administra las consultas Sql, creación de
procedimientos, vistas, manipulación de sripts, ayuda
sobre la sintaxis de mysql
Plone Herramienta Case
Ruby on Rails
Herramienta Case, Open Source Web framework que
optimiza la programación y productividad, es una
herramienta que sirve para desarrollar aplicaciones Web
con bases de datos.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 33/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 33
ALMACENAMIENTO DE DATOS EN MYSQL
Arquitectura de Almacenamiento en Mysql
Esta eficiente arquitectura provee beneficios para el tipo de aplicación que se
necesite como data warehousing, procesamiento de transacciones, situaciones
de alta disponibilidad, etc. Todo para que el motor de la base de datos funcione
eficientemente. Esto va de la mano con las ventajas de utilizar un set de
interfaces y servicios.
El programador de aplicaciones y el dba pueden interactuar con la base de
datos a través de los conectores Api’s y capas de servicios que se están
disponibles para los tipos de almacenamiento. Es posible cambiar entre los
tipos de almacenamiento sin necesidad de modificar mucho código o procesos
durante el cambio.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 34/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 34
Comparación de los diferentes tipos de almacenamiento en Mysql
Comparativa de almacenamiento de Datos en Mysql
Característica MyIsam BDB Memory InnoDb Archive NDB
Limites de Almacenamiento x x Si 64TB x Si
Transacciones (Commit, roolback, etc.) x Si x Si x Si
Granularidad de Bloqueo Tabla Página Tabla Registro Registro Registro
MVCC (Multi-version concurrency control) /
Snapshot Readx x x Si Si Si
Soporte Geoespatial Si x x x x x
Indices B-Tree Si Si Si Si x Si
Indices Hash x Si x Si x Si
Indice de búsqueda Full text Si x x x x x
Clustered Index x x x Si x x
Cache de Datos x x Si Si x xCache de Indices Si x Si Si x Si
Compresión de Datos Si x x x Si x
Encriptación de datos Si Si Si Si Si Si
Costo de Almacenamiento ( espacio utilizado
)Bajo Bajo N/A Alto Muy Bajo Alto
Costo de Memoria Bajo Bajo Medio Alto Bajo Alto
Velocidad de Inserción Alto Alto Alto Bajo Muy Alto Alto
Cluster DataBase Support x x x x x Si
Soporte para Replica Si Si Si Si Si Si
Soporte para claves foraneas x x x Si x x
Backup / Point-in-time Recovery Si Si Si Si Si Si
Soporte para Query Cache Si Si Si Si Si Si
Estadísticas de Actualización para
diccionario de datosSi Si Si Si Si Si
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 35/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 35
EMPRESAS QUE UTILIZAN MYSQL
Dentro de las empresas que utilizan Mysql en sus ambientes de producción
tenemos las siguientes:Sonny, Suzuki, Lycos, Yahoo, Dell, PortaOne, Nasa, Unicef, Mcafee, Aizawa
Securities, Google.
Como se puede observar, la mayoría son empresas que tienen su aplicación en
el internet con base de datos, es decir, aplicaciones web.
CALIDAD DEL SOFTWARE MYSQL
Un proyecto financiado por el departamento de seguridad interna de EEUU con
1.2 millones de euros, es un proyecto completamente independiente (
http://www.whitehouse.gov/pcipb/ ). El estudio realizado por la empresa
Coverity (http://www.coverity.com/main.html ) especializada en auditoria de
código y evaluación de riesgos y Symantec, en colaboración con la universidad
de Stanford. Este proyecto, a parte de los resultados es un proyecto
completamente independiente no como otros que han sido financiados por
empresas y consultoras afines a una tendencia u otra. En este caso la finalidad
era la de saber la verdad sobre el software libre para que ayude a la toma de
decisiones.
Para el proyecto se analizaron 32 proyectos de software libre uno por uno
frente a las aplicaciones propietarias, entre ellos la base de datos libre Mysql, la
conclusión fue que el software libre tiene menos errores de programación que
el software propietario.
Software libre: 0.434 errores por cada 1,000 líneas de código
Propietario: de 20 a 30 errores por cada 1,000 líneas de código
Incluso en el caso más desastroso, se ha comprobado que en muchas
ocasiones las Comunidades de Software Libre tienen pocos problemas en
hacer cambios mayores en el código, incluso partiendo desde cero, para
solventar errores graves de diseño, cosa que es complicado ver en productos
propietarios en producción, que arrastran errores hasta el final del ciclo de vida.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 36/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 36
PRECIOS MYSQL
Mysql es Glp (General Public Licence) no tiene costo, en lo que gana la
empresa Mysql Ab es en el soporte y entrenamiento.Al ser una empresa que maneja sus códigos con el tipo de licencia Gpl reduce
los costos de desarrollo, administración.
ProductoPor servidor /
por año
Base de datos
Mysql Migration Toolkit 0
Query Browser 0Administrator 0
Mysql 5.0 0
Opciones
Hot Backup 350
Soporte Por usuario
Mysql Network Basic 595
Mysql Network Silver 1995
Mysql Network Gold 2995
Mysql Network Platinum 4995
CapacitaciónMysql High Availability 1495
Mysql Performance Tunning 1995
Mysql Mew Features 1995
Mysql For DataBase Administrators 2495
Mysql For Developers 1495
Mysql In-Depth 995
Performance Tunnign And Optimization 995
Mysql Cluster 1500
Mysql For Beginners 2495
Developing Application with Mysql an Php 2495Certificación
Core Certification 200
Professional Exam 200
Core and Prof Exam 380
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 37/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 37
CONCLUSIONES Y RECOMENDACIONES
El comercio electrónico ofrece opciones de automatización en todos los
negocios de las empresas, los documentos digitales son el futuro, al ser
este servicio tan imprescindible, se hace necesario analizar las
posibilidades existentes en el mercado de bases de datos y las
características que una base de datos libre puede solventar frente a las
bases de datos comerciales.
La inversión en una base de datos de código abierto es una alternativa
válida que gerentes y desarrolladores deberían considerar el momento
de escoger una solución informática.
El desarrollo de MySql y la forma en la que los miles de usuarios aportan
con la solución pronta a problemas existentes en el motor de base de
datos, la hacen ver como una seria competidora ante las bases de datos
propietarias, poco a poco sus funcionalidades envidian casi nada a estas
últimas.
Hay que tomar en cuenta que la compra del motor de base de datos no
es el único gasto que las empresas tendrán que realizar para
automatizar sus procesos, existen otros costos como administración,
mantenimiento, capacitación, el costo es entonces un punto muy
importante para tomar en cuenta a la hora de seleccionar un sistema
gestor de bases de datos.
Oracle debe abrir el código fuente de sus aplicaciones de manera que
permita a los usuarios un mejor manejo de la herramienta y conocer
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 38/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 38
sobre su funcionamiento.
Las pequeñas empresas deben tomar en cuenta las bases de datos de
código abierto como Mysql para sus desarrollos ya que tiene muchas
funcionalidades como las bases de datos comerciales y que está al
alcance de su economía.
En este estudio se detallan buenas razones para usar bases de datos de
código abierto en las empresas, en el caso de mysql, cumple con
muchas de las características de las bases de datos propietarias,
además el soporte es muy bueno y lo principal es que el costo se reduce
en gran medida.
Las empresas que utilizan MySQL consiguen reducir su gasto destinado
a este tipo de software hasta en un 90%.
La facilidad de su uso la flexibilidad en diferentes sistemas operativos
hacen muy popular esta base de datos.
MySQL es un buen gestor de bases de datos ya que almacena gran
cantidad de líneas manejando gran cantidad de capacidad de
almacenaje.
Su característica de código abierto permite que se desarrollen nuevas
aplicaciones o se adquieran existentes.
5/17/2018 Mysql - slidepdf.com
http://slidepdf.com/reader/full/mysql-55ab58cf1af76 39/39
TRABAJO MONOGRÁFICO 1 - MYSQL
Administración de Base de Datos (ST - 214) Página 39
BIBLIOGRAFIA
http://es.wikipedia.org/wiki/MySQL
http://www.sorgonet.com/linux/mysql/index_es.php
http://www.arrakis.es/~chessy/docs/teoria/Tutorial-MySQL.html http://www.mysql.com/documentation/mysql/bychapter/
http://www.mysql.com/doc/F/u/Fulltext_Search.htm
http://www.mysql.com/doc/I/n/Indexes.html
http://www.oracle.com
Mysql Avanzado, Jeremy D. Zawodny y Derek J. Balling. Editorial
O’reilly.
Bases de Datos desde Chen hasta Codd con Oracle, Irene Ruiz, Miguel
Angel Gómez, Enrique López Espinosa, Gonzalo Cerruela García,
Editorial Alfaomega.
Mysql para Windows y Linux, César Pérez, Editorial Alfaomega.
La biblia de Mysql, Ian Gilfillan, Editorial Anaya.
Fundamentos de Bases de Datos, Cuarta Edición, Abraham
Silberschatz, Henry F. Korth, S. Sudarshan, Editorial McGraw Hill.
http://www.guia-ubuntu.org/index.php?title=MySQL